プロジェクト項目の実行をフィルタリングして目的のアーティファクトのみをビルドするには、プロジェクトソースを継続的インテグレーションサーバー上に生成するビルドプロジェクトを設定する時に、入力したMavenパラメーター内にフィルターを宣言する必要があります。
始める前に
- 継続的インテグレーションサーバー(この例ではJenkins)上にビルドパイプラインが作成済みであること。Jenkinsパイプラインを作成をご覧ください。
- 実行するアーティファクトのPOMファイルへのパスを知っていること(標準ジョブ、ビッグデータジョブ、ルートなど)。これらのファイルは、Studioワークスペースのworkspace/<my_project>/pomsディレクトリーにあります。
ヒント:
- 標準ジョブにフィルターを適用する場合、使用するパスはjobs/process/jobName_versionとなります
- ビッグデータジョブにフィルターを適用する場合、使用するパスはjobs/process_mr/jobName_versionとなります
- ルートにフィルターを適用する場合、使用するパスはjobs/routes/routeName_versionとなります
- データサービスにフィルターを適用する場合、使用するパスはjobs/services/serviceName_versionとなります
手順
-
JenkinsのホームページからTalendSimplePipelineを選択します。
-
左パネルで[Build with parameters] (パラメーターでビルド)をクリックし、パイプライン共有ページを開きます。
-
JOBS_TO_BUILDエリアで、必要に合わせてジョブをフィルタリングできるようにするMavenコマンドとパラメーターを編集します。
例
プロジェクトのビルドディレクトリー(古いファイルの削除)をクリーンアップし、route_feature950ルートとその依存項目の生成を開始し、定義したNexusアーティファクトリポジトリーにパッケージをデプロイメントするために使用されるMavenコマンドの例:
-fae -e -pl jobs/routes/route_feature950_0.1 -amd
-amdパラメーターは、ルートを公開する時に必須です。ルートを公開するにはルートの依存項目を生成する必要があるためです。
プロジェクトビルドディレクトリーのクリーニングに使用するMavenコマンドの例(古いファイルの削除)では、parentという名前の親ジョブと、その依存項目(子ジョブ)の生成が開始し、それらのパッケージ化されたアーティファクトがTalend Cloud Management Consoleにデプロイメントされます。
-Pcloud-publisher -pl jobs/process/parent_0.1 -am
生成されたプロジェクトを取り込み、すべてのアーティファクトのJavaコードをこのプロジェクト内にDockerイメージとしてパッケージするために使用されるMavenコマンドの例。
-Pdocker package -fae -e
-
[Build] (ビルド)をクリックすると、変更内容が反映されてアーティファクトがビルドされます。
タスクの結果
継続的インテグレーションサーバー上でプロジェクトを実行すると、フィルターが適用され、フィルターをかけたアーティファクトのみが生成され、実行されます。