POMを再同期化してTalend CI BuilderにおけるPOMのプロジェクトモジュール定義の重複を回避する - Cloud - 7.3

Talend Studioユーザーガイド

Version
Cloud
7.3
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 Studio
Content
ジョブデザインと開発
Last publication date
2024-02-13

あるプロジェクトがメインプロジェクトの複数の参照プロジェクトによって参照される場合、Talend CI Builderでプロジェクトモジュールの定義が重複しないよう、すべての参照プロジェクトとメインプロジェクトのPOMを1つずつ、参照階層の最下位から最上位に向けて再同期化する必要があります。

注: POMの再同期化が便利なのは、Talend CI Builderでメインプロジェクトをビルドする場合のみです。

たとえばProjectMainというメインプロジェクトの2つの参照プロジェクト(ProjectRefAProjectRefB)によってProjectSubRefというプロジェクトが参照されている場合、まず第3レベルのプロジェクトであるProjectSubRef、次に第2レベルのプロジェクトであるProjectRefAProjectRefB (同じレベルのプロジェクト間には優先順位なし)、最後に第1レベルのメインプロジェクトであるProjectMainという順序でPOMを再同期化します。

このタスクについて

プロジェクトでPOMを再同期化する方法は以下のとおりです。

手順

  1. Talend Studioでプロジェクトを開きます。
  2. メニューバーで、[File] (ファイル) > [Edit Project properties] (プロジェクトプロパティを編集)とクリックして、[Project Settings] (プロジェクト設定)ダイアログボックスを開きます。
  3. [Build] (ビルド)を展開して[Maven]をクリックします。
  4. [Set reference project modules in profile] (プロファイルで参照プロジェクトモジュールを設定)チェックボックスをオンにし、[Force full re-synchronize poms] (POMの全再同期を強制)をクリックします。
  5. 完了したら、[Apply and Close] (適用して閉じる)をクリックしてダイアログボックスを閉じます。

次のタスク

すべてのプロジェクトでPOMが再同期化された後は、各プロジェクトのPOMで参照プロジェクトがプロファイルとして設定され、識別用に<p_name>_<refp_name>という形式で一意IDが付けられていることがわかります。<p_name><refp_name>にはそれぞれプロジェクト名と参照プロジェクト名が入ります。すべて小文字で、たとえばProjectMainというメインプロジェクトのPOMではprojectmain_projectrefaprojectmain_projectrefbに、ProjectRefAというプロジェクトのPOMではprojectrefa_projectsubrefに、ProjectRefBというプロジェクトのPOMではprojectrefb_projectsubrefとなります。

Talend CI Builderでメインプロジェクトをビルドする場合は、各参照プロジェクトのプロファイルIDをコマンドで使用する必要があります。重複する参照プロジェクト(この例ではprojectrefa_projectsubrefprojectrefb_projectsubref)は一度しか表示されません。以下に例をいくつか挙げておきます。

mvn package/install/deploy -P !projectrefb_projectsubref
mvn install/deploy -P docker,projectmain_projectrefa,projectmain_projectrefb,projectrefa_projectsubref
mvn deploy -P cloud-publisher,projectmain_projectrefa,projectmain_projectrefb,projectrefb_projectsubref