-
Utilisez le paramètre -DitemFilter pour filtrer les éléments des projets.
Exemple de filtre sur les types de Jobs :
- -DprojectFilter="main" -DitemFilter="(type=process)" pour filtrer sur tous les Jobs Standard
- -DprojectFilter="main" -DitemFilter="(type=process_mr)" pour filtrer sur tous les Jobs Big Data Map/Reduce et Spark Batch
- -DprojectFilter="main" -DitemFilter="(type=process_storm)" pour filtrer sur tous les Jobs Big Data Storm et Spark Streaming
- -DprojectFilter="main" -DitemFilter="(type=route)" pour filtrer sur toutes les Routes
Exemple de filtre sur les libellés de Jobs :
- -DprojectFilter="main" -DitemFilter="(type=process)and(label=jobA)" pour filtrer sur un Job spécifique nommé jobA
- -DprojectFilter="main" -DitemFilter="(type=process)and(label%job*)" pour filtrer sur les Jobs dont le nom commence par job
Exemple de filtre sur les chemins de Jobs :
- -DprojectFilter="main" -DitemFilter="(type=process)and(path=Integration)" pour filtrer sur les Jobs situés dans un sous-dossier nommé Integration
- -DprojectFilter="main" -DitemFilter="(type=process)and(path%Integration*)" pour filtrer sur les Jobs situés dans des sous-dossiers dont le nom commence par Integration
Exemple de filtre sur les versions des Jobs :
- -DprojectFilter="main" -DitemFilter="(type=process)and(version=lastVersion)" pour filtrer sur la dernière version de vos Jobs
Vous avez également la possibilié de supprimer les anciennes versions de vos éléments de projets dans les paramètres des projets du Studio Talend.
Exemple de filtre sur les personnes qui ont créé le Job :
-DprojectFilter="main" -DitemFilter="(type=process)and(author=doc@talend.com)" pour filtrer sur les Jobs dont l'ID du créateur ou de la créatrice est doc@talend.com
Exemple de filtre d'exclusion :
- -DprojectFilter="main" -DitemFilter="(!path=sandbox)and(type=process)and(label%jobA*)or(label%jobB*)" pour filtrer sur les Jobs dont le nom commence par jobA ou jobB, qui ne sont pas situés dans le dossier sandbox
- -DprojectFilter="main" -DitemFilter="(!path%MainProcess/Import*)and(type=process)and(label%job*)" pour filtrer sur les Jobs dont le nom commence par job, mais qui ne se trouvent pas dans les sous-dossiers dont le nom commence par Import dans le dossier MainProcess
- -DprojectFilter="main" -DitemFilter="(type=process)and(!label=job2)and(path%MainProcess/Export*)" pour filtrer sur les Jobs situés dans les sous-dossiers dont le nom commence par Export dans le dossier MainProcess, avec l'exception du Job nommé job2
-
Utilisez le paramètre -Dfilter.include.dependencies=true supplémentaire pour inclure toutes les dépendances de vos éléments de projets filtrés et accélérer la génération des POM.
Exemple pour un projet principal :
-DprojectFilter="main" -DitemFilter="my_parent_jobs" -Dfilter.include.dependencies=true pour générer les fichiers POM des Jobs parents indiqués, ainsi que de leurs sous-Jobs et Joblets.
Exemple pour plusieurs projets (avec des projets de référence) :
-DprojectFilter="mainA|mainB" -DitemFilter="my_parent_job_in_mainA_or_main_B" -Dfilter.include.dependencies=true pour générer les fichiers POM du Job parent indiqué, ainsi que ceux de ses sous-Jobs et Joblets des projets indiqués dans le paramètre
-DprojectFilter, par exemple :
- JobparentA et ses sous-Jobs et Joblets également dans le projet principalA,
- JobparentB et ses sous-Jobs et Joblets également dans le projet principalB,
- si le principalA contient les projets de référence refA1 et refA2 et que le principalB contient les projets de référence refB1 et refB2, alors tous les éléments des projets refA1, refA2, refB1 et refB1 seront générés.
Les projets de référence indiqués dans -DprojectFilter sont générés complètement lorsqu'aucun filtre n'est appliqué.
Utilisez le paramètre -Dtalend.child.lifecycle.skip=true supplémentaire pour exclure les Jobs enfants de vos éléments de projets. Lorsque sa valeur est true, seuls les Jobs spécifiquement sélectionnés par le paramètre -DitemFilter sont déployés. Cela retire le besoin de recourir aux paramètres Maven -pl (project list, liste des projets) et -am (also make, effectuer également) après la génération du POM.
Exemple :
-DprojectFilter="main" -DitemFilter="(type=process)and(label=jobB)" -Dtalend.child.lifecycle.skip=true pour filtrer sur un Job spécifique nommé jobB tout en excluant ses Jobs enfants.
Lorsque vous n'utilisez pas le paramètre -Dtalend.child.lifecycle.skip (ou que vous le configurez comme false), le filtrage seul lors de la génération du POM (avec -DitemFilter) peut ne pas restreindre le déploiement au seul Job parent. À la place, Maven tente d'inclure tout sous-Job ou Joblet référencé.
Pour déployer uniquement le Job parent filtré après la génération des POM, utilisez le paramètre Maven -pl pour spécifier le module ou l'artefact exact, ainsi que le paramètre -am si vous souhaitez construire les dépendances.
Exemple :# Generate filtered POMs
mvn org.talend.ci:builder-maven-plugin:8.0.X:generateAllPoms
-DprojectFilter="main"
-DitemFilter="(type=process)and(label=myParentJob)"
-Dtalend.child.lifecycle.skip=false
# Deploy only the filtered parent job
mvn deploy -fn -pl "myParentJob" -am
-DaltDeploymentRepository=tac::default::http://10.70.25.99:8082/repository/releases/
Si vous utilisez -Dtalend.child.lifecycle.skip=true, vous n'avez pas besoin de spécifier -pl et -am. Seul le Job filtré sera déployé.