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

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

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

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

![](https://help.qlik.com/talend/ja-JP/studio-user-guide/Resources/images/studio_project_reference_hierarchy.png)

## このタスクについて

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

## 手順

1. Talend Studioでプロジェクトを開きます。
2. メニューバーで、[File] (ファイル) &gt; [Edit Project properties] (プロジェクトプロパティを編集)とクリックして、[Project Settings] (プロジェクト設定)ダイアログボックスを開きます。
3. [Build] (ビルド)を展開して[Maven]をクリックします。

   ![](https://help.qlik.com/talend/ja-JP/studio-user-guide/Resources/images/studio_project_settings_maven.png)
4. [Set reference project modules in profile] (プロファイルで参照プロジェクトモジュールを設定)チェックボックスをオンにし、[Force full re-synchronize poms] (POMの全再同期を強制)をクリックします。
5. 完了したら、[Apply and Close] (適用して閉じる)をクリックしてダイアログボックスを閉じます。

## 次のタスク

すべてのプロジェクトでPOMが再同期化された後は、各プロジェクトのPOMで参照プロジェクトがプロファイルとして設定され、識別用に&lt;p\_name&gt;\_&lt;refp\_name&gt;という形式で一意IDが付けられていることがわかります。&lt;p\_name&gt;と&lt;refp\_name&gt;にはそれぞれプロジェクト名と参照プロジェクト名が入ります。すべて小文字で、たとえばProjectMainというメインプロジェクトのPOMではprojectmain\_projectrefaとprojectmain\_projectrefbに、ProjectRefAというプロジェクトのPOMではprojectrefa\_projectsubrefに、ProjectRefBというプロジェクトのPOMではprojectrefb\_projectsubrefとなります。 ![](https://help.qlik.com/talend/ja-JP/studio-user-guide/Resources/images/studio_project_reference_pom.png)

Talend CI Builderでメインプロジェクトをビルドする場合は、各参照プロジェクトのプロファイルIDをコマンドで使用する必要があります。重複する参照プロジェクト(この例ではprojectrefa\_projectsubrefとprojectrefb\_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
```