# プロジェクトでPOMファイルを生成

パフォーマンス上の理由により、デフォルトではプロジェクトのPOMファイルが生成されません。継続的インテグレーションのビルドが正しく実行されるよう、まずプロジェクトのPOMファイルを作成することが必要です。Talend CI Builderを使用してmvn org.talend.ci:builder-maven-plugin:8.0.X:generateAllPomsコマンドでプロジェクトでPOMファイルを生成できます。

## 始める前に

継続的インテグレーションのアップデートリポジトリーが設定できました。詳細は、[Talend Studioと継続的インテグレーションのアップデートリポジトリーを設定](https://help.qlik.com/talend/r/ja-JP/8.0/installation-guide-windows/setting-up-update-repositories-for-studio-and-ci)をご覧ください。

## このタスクについて

プロジェクトでPOMファイルを生成するには:

## 手順

1. Gitプロジェクトをチェックアウトします。

   Gitプロジェクトをチェックアウトする方法の詳細は、[Gitチェックアウト](https://www.atlassian.com/git/tutorials/using-branches/git-checkout)をご覧ください。
2. オプション: mvn org.talend.ci:builder-maven-plugin:8.0.x:installコマンドを実行します。
3. オプション: mvn org.talend.ci:builder-maven-plugin:8.0.x:executeScriptコマンドを実行します。このコマンドは、NexusやDockerへのデプロイメントに有用です。

   以下は、[プロジェクトでPOMファイルを生成](https://help.qlik.com/talend/ja-JP/software-dev-lifecycle-best-practices-guide/8.0/regenerate-pom-files)に従い、プロジェクトで全POMファイルを生成する例です。これによって、Mavenバージョンを変更するchangeMavenVersionコマンドと、プロジェクトでPOMファイルを再生成するTalend CommandLineのregenerateAllPomsコマンドが呼び出されます。
   ```
   # The content of the script named upgrade_version.txt
   -pn gitProject -ul 'jobbuilder@talend.com' -gt
   changeMavenVersion 2.1.0 --item-filter 'label%*test5_pere*' --subjobs --snapshot
   ```
   ```
   # To execute the custom script upgrade_version.txt
   mvn org.talend.ci:builder-maven-plugin:<version>:executeScript -s ./maven_settings.xml 
   -Dgeneration.type=local 
   -Dproduct.path=/home/talend/studio 
   -Dlicense.path=/home/talend/studio/license 
   -DscriptFile=/home/talend/upgrade_version.txt
   ```
4. プロジェクトをチェックアウトしたディレクトリーの下にあるmvn org.talend.ci:builder-maven-plugin:8.0.X:generateAllPomsコマンドを実行して、プロジェクトでPOMファイルを生成します。

   プロジェクトでPOMファイルを生成する前に、次の点にご注意ください。
   * POMファイルの生成プロセスは、製品のライセンス、Talend Studioフィーチャーパッケージのリポジトリー、Talend Studioアップデートのリポジトリーに依存しています。プロセスの依存先は、対応する-Dlicense.path、-Dtalend.studio.p2.base、および-Dtalend.studio.p2.updateパラメーターで指定できます。これらのいずれかにアップデートがあった場合、対応するパラメーターでプロジェクトのPOMファイルを再生成する必要があります。
   * 既にスタンドアロンステップでTalend CommandLineがインストールされており、ライセンスをアップデートしたり、Talend Studioのマンスリーアップデートを適用する必要がない場合は、-Dproduct.pathパラメーターを使ってコマンドを実行するだけの処理になります。詳細は、[スタンドアロンステップでTalend CommandLineをインストール(オプション)](https://help.qlik.com/talend/ja-JP/software-dev-lifecycle-best-practices-guide/8.0/studio-single-install)をご覧ください。
   * 移行の場合に、全プロジェクトや項目についてPOMファイルを生成したいことがあるとします。-DprojectFilterと-DitemFilterパラメーターを使用して、特定のプロジェクトや項目をフィルタリングできます。
   * Talendが提供する8.0 R2022-06以降のTalend Studioマンスリーアップデートがインストールされ、メインプロジェクトに重複する参照プロジェクトがある場合:
     * 重複する参照プロジェクトのモジュールはメインプロジェクトのPOMファイルから除外され、重複する参照プロジェクトのアーティファクトはデフォルトで依存項目としてMaven .m2フォルダーにインストールされます。
     * メインプロジェクトでPOMファイルを生成する時に、プロファイルを有効にするよう-Dtalend.profile.modeパラメーターを追加する必要はありません。

   CI関連のパラメーターの詳細は、[CIビルダー関連のMavenパラメーター](https://help.qlik.com/talend/ja-JP/software-dev-lifecycle-best-practices-guide/8.0/cibuilder-maven-build-options)をご覧ください。

   次に、Talend CommandLineをインストールし、Talend Studioマンスリーアップデートを適用してから、プロジェクトの全POMファイルを生成する例を示します。
   ```
   # To generate all POM files for your projects
   mvn org.talend.ci:builder-maven-plugin:8.0.X:generateAllPoms 
   -Dproduct.path=/home/talend/studio 
   -Dlicense.path=/home/talend/studio/license 
   <!-- This parameter is only supported for users with Talend Studio 8.0.1 R2024-04 or lower 
   -Dtalend.studio.p2.base=https://update.talend.com/Studio/8/base -->
   -Dtalend.studio.p2.update=https://update.talend.com/Studio/8/updates/R2023-02
   ```
5. プロジェクトのビルドをテストし、Mavenのpackageコマンド、installコマンド、deployコマンドを使ってパッケージ化します。インストールする場合は、mvn package/install/deployとなります。

   プロジェクトをビルドしパッケージする前に、次の点にご注意ください。
   * メインプロジェクトでPOMファイルを生成する際にプロファイルが有効にされていた場合、プロジェクトやアーティファクトをビルドする時に-Pパラメーターを使ってプロファイルを指定する必要があります。Mavenプロファイルの詳細は、[ビルドプロファイルの概要](https://maven.apache.org/guides/introduction/introduction-to-profiles.html)をご覧ください。プロファイルの有効化についての詳細は、[CIビルダー関連のMavenパラメーター](https://help.qlik.com/talend/ja-JP/software-dev-lifecycle-best-practices-guide/8.0/cibuilder-maven-build-options)の-Dtalend.profile.moduleパラメーターに関連する説明をご覧ください。
   * Talendが提供する8.0 R2022-06以降のTalend Studioマンスリーアップデートがインストールされ、メインプロジェクトに重複する参照プロジェクトがある場合は、メインプロジェクトをパッケージ化する際にその参照プロジェクトが共にパッケージ化されないため、個別にそれをパッケージ化する必要があります。

   次に例を示します。
   ```
   # To build your projects and package artifacts
   mvn package 
   -Dlicense.path=/home/talend/studio/license 
   <!-- This parameter is only supported and needed for users with Talend Studio 8.0.1 R2024-04 or lower 
   -Dtalend.studio.p2.base=https://update.talend.com/Studio/8/base -->
   -Dtalend.studio.p2.update=https://update.talend.com/Studio/8/updates/R2023-02
   ```

### このセクション内

* [プロジェクト項目をフィルタリング](https://help.qlik.com/talend/ja-JP/software-dev-lifecycle-best-practices-guide/8.0/filter-project-items)