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

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

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

POMファイルの生成時に使用できる主なフィルターパラメーターは次の3つです。
  • -DitemFilter
  • -DprojectFilter
  • -Dfilter.include.dependencies=true
情報メモ注: -DitemFilter は常に -DprojectFilter と一緒に使用することをお勧めします。

-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パラメーターを使ってプロジェクト項目をフィルタリングします。

      ジョブタイプでのフィルタリング例:

      • -DprojectFilter="main" -DitemFilter=(type=process): すべての標準ジョブをフィルタリング
      • -DprojectFilter="main" -DitemFilter=(type=process_mr): すべてのビッグデータ Map/Reduce および Spark バッチジョブをフィルタリング
      • -DprojectFilter="main" -DitemFilter=(type=process_storm): すべての Big Data Storm および Spark ストリーミング ジョブをフィルタリング
      • -DprojectFilter="main" -DitemFilter=(type=route): すべてのルートをフィルタリング

      ジョブ ラベルでのフィルタリング例:

      • -DprojectFilter="main" -DitemFilter=(type=process)and(label=jobA): jobA という名前のジョブをフィルタリング
      • -DprojectFilter="main" -DitemFilter=(type=process)and(label%job*): job という名前で始まるジョブをフィルタリング

      ジョブ パスでのフィルタリング例:

      • -DprojectFilter="main" -DitemFilter=(type=process)and(path=Integration): Integration サブフォルダー内にあるジョブをフィルタリング
      • -DprojectFilter="main" -DitemFilter=(type=process)and(path%Integration*): Integration で始まる名前のサブフォルダーにあるジョブをフィルタリング

      ジョブ バージョンでのフィルタリング例:

      • -DprojectFilter="main" -DitemFilter=(type=process)and(version=lastVersion): ジョブの最新バージョンでフィルタリング

      また、Talend Studio の [プロジェクト設定] で、古いバージョンのプロジェクト項目を削除することもできます。

      ジョブの作成者でのフィルタリング例:

      -DprojectFilter="main" -DitemFilter=(type=process)and(author=doc@talend.com): doc@talend.com という作成者 ID のジョブをフィルタリング

      除外フィルターの例:

      • -DprojectFilter="main" -DitemFilter=(!path=sandbox)and(type=process)and(label%jobA*)or(label%jobB*): jobA または jobB という名前で始まるが、sandbox フォルダーにないジョブをフィルタリング
      • -DprojectFilter="main" -DitemFilter=(!path%MainProcess/Import*)and(type=process)and(label%job*): job という名前で始まるが、MainProcess フォルダーの Import という名前で始まるサブフォルダーにないジョブをフィルタリング
      • -DprojectFilter="main" -DitemFilter=(type=process)and(!label=job2)and(path%MainProcess/Export*): MainProcess フォルダーの Export という名前で始まるサブフォルダーにあるジョブ (job2 というジョブを除く) をフィルタリング
    • 追加の -Dfilter.include.dependencies=true パラメーターを使用すると、フィルタリングされたプロジェクト項目の依存項目がすべて含まれ、POM がさらに速く生成されます。

      メイン プロジェクトが 1 つの場合の例:

      -DprojectFilter="main" -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パラメーター値に条件を追加する必要があります。

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

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