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

TalendSoftware Development Life Cycleベストプラクティスガイド

Version
Cloud
8.0
Language
日本語
Product
Talend Big Data
Talend Big Data Platform
Talend Cloud
Talend Data Fabric
Talend Data Integration
Talend Data Management Platform
Talend Data Services Platform
Talend ESB
Talend MDM Platform
Talend Real-Time Big Data Platform
Module
Talend Administration Center
Talend Artifact Repository
Talend CommandLine
Talend JobServer
Talend Management Console
Talend Remote Engine
Talend Studio
Content
ジョブデザインと開発
デプロイメント
管理と監視
Last publication date
2024-02-29

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): ジョブの最新バージョンでフィルタリング

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