メイン コンテンツをスキップする 補完的コンテンツへスキップ

プロジェクト項目をフィルタリング

Talend CI Builderでは、POMをさらに速く生成できるよう、生成するプロジェクト項目をフィルタリングして指定できます。

POMファイルの生成時に使用できる主なフィルターパラメーターは次の3つです。
  • -DitemFilter
  • -DprojectFilter
  • -Dfilter.include.dependencies=true

-DitemFilterパラメーターが使われない場合は、POMファイルを生成する必要があるプロジェクトの選択に-DprojectFilterパラメーターが使われます。-DitemFilterパラメーターが使われる場合は、その-DitemFilterパラメーターが適用される必要があるプロジェクトの選択に-DprojectFilterパラメーターが使われます。ただし、-DprojectFilter値に記述されていないプロジェクトのPOMファイルは、フィルターが適用されずに生成されます。

手順

  1. Gitプロジェクトをチェックアウトします。
    Gitプロジェクトをチェックアウトする方法の詳細は、Gitチェックアウトをご覧ください。
  2. 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): ジョブの最新バージョンでフィルタリング

      また、Studio Talend[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パラメーター値に条件を追加する必要があります。

このページは役に立ちましたか?

このページまたはコンテンツに、タイポ、ステップの省略、技術的エラーなどの問題が見つかった場合は、お知らせください。改善に役立たせていただきます。