Talend CI Builderでは、POMをさらに速く生成できるよう、生成するプロジェクト項目をフィルタリングして指定できます。
- -DitemFilter
- -DprojectFilter
- -Dfilter.include.dependencies=true
-DitemFilterパラメーターが使われない場合は、POMファイルを生成する必要があるプロジェクトの選択に-DprojectFilterパラメーターが使われます。-DitemFilterパラメーターが使われる場合は、その-DitemFilterパラメーターが適用される必要があるプロジェクトの選択に-DprojectFilterパラメーターが使われます。ただし、-DprojectFilter値に記述されていないプロジェクトのPOMファイルは、フィルターが適用されずに生成されます。
手順
-
Gitプロジェクトをチェックアウトします。
Gitプロジェクトをチェックアウトする方法の詳細は、Gitチェックアウトをご覧ください。
-
mvn org.talend.ci:builder-maven-plugin:8.0.X:generateAllPoms
コマンドを実行します。-
-DitemFilterパラメーターを使ってプロジェクト項目をフィルタリングします。
ジョブタイプでのフィルタリング例:
-DitemFilter=(type=process)
: 標準ジョブをすべてフィルタリング-DitemFilter=(type=process_mr)
: Big Data Map/ReduceジョブとSpark Batchジョブをすべてフィルタリング-DitemFilter=(type=process_storm)
: Big Data StormジョブとSpark Streamingジョブをすべてフィルタリング-DitemFilter=(type=route)
: ルートをすべてフィルタリング
ジョブラベルでのフィルタリング例:
-DitemFilter=(type=process)and(label=jobA)
: jobAという名前のジョブをフィルタリング-DitemFilter=(type=process)and(label%job_dev*)
: job_devという名前で始まるジョブをフィルタリング
ジョブパスでのフィルタリング例:
-DitemFilter=(type=process)and(path=Integration)
: Integrationサブフォルダー内にあるジョブをフィルタリング-DitemFilter=(type=process)and(path%Integration*)
: 名前がIntegrationで始まるサブフォルダーにあるジョブをフィルタリング
ジョブバージョンでのフィルタリング例:
-DitemFilter=(type=process)and(version=lastVersion)
: ジョブの最新バージョンでフィルタリング
また、Talend Studioの[Project Settings] (プロジェクト設定)で、古いバージョンのプロジェクト項目を削除することもできます。
ジョブの作成者でのフィルタリング例:
-DitemFilter=(type=process)and(author=doc@talend.com)
: doc@talend.comという作成者IDのジョブをフィルタリング除外フィルターの例:
-DitemFilter=(!path=sandbox)and(type=process)and(label%jobA*)or(label%jobB*)
: jobAまたはjobBという名前で始まるが、sandboxフォルダーにないジョブをフィルタリング-DitemFilter=(!path%MainProcess/Import*)and(type=process)and(label%job*)
: jobという名前で始まるが、MainProcessフォルダーの下のImportという名前で始まるサブフォルダーにないジョブをフィルタリング-DitemFilter=(type=process)and(!label=job2)and(path%MainProcess/Export*)
: MainProcessフォルダーの下のExportという名前で始まるサブフォルダーにあるジョブ(job2というジョブを除く)をフィルタリング
-
追加の-Dfilter.include.dependencies=trueパラメーターを使用すると、フィルタリングされたプロジェクト項目の依存項目がすべて含まれ、POMがさらに速く生成されます。
メインプロジェクトが1つの場合の例:
-DitemFilter=my_parent_jobs -Dfilter.include.dependencies=true
で、記述されている親ジョブ、それに関連する全サブジョブとジョブレットのPOMファイルが生成されます。(参照プロジェクトも含め)プロジェクトが複数ある場合:
-DprojectFilter="mainA|mainB" -DitemFilter=my_parent_job_in_mainA_or_main B -Dfilter.include.dependencies=true
で、-DprojectFilterパラメーター値で記述されているプロジェクトの親ジョブ、それに関連する全サブジョブとジョブレットのPOMファイルが生成されます。すなわち、- mainAプロジェクトにも存在するparentJobAとそのサブジョブおよびジョブレット
- mainBプロジェクトにも存在するparentJobBとそのサブジョブおよびジョブレット
- mainAにrefA1とrefA2という参照プロジェクトがあり、mainBにrefB1とrefB2という参照プロジェクトがあれば、refA1、refA2、refB1、refB1というプロジェクトの項目がすべて生成されます。
-DprojectFilterで記述されているプロジェクトの参照プロジェクトは、フィルターが適用されることなく完全に生成されます。
重要: -DprojectFilterパラメーター値には参照プロジェクトの名前を入力しないでください。入力してしまうと-DitemFilterパラメーターがこの特定の参照プロジェクトに適用されるため、参照プロジェクトで必要なジョブをすべて生成できるように-DitemFilterパラメーター値に条件を追加する必要があります。 -