Mavenコマンドを使った手動による継続的インテグレーションとデプロイの例 - 7.2

Talendソフトウェア開発ライフサイクルベストプラクティスガイド

Version
7.2
Language
日本語 (日本)
Product
Talend Big Data
Talend Data Fabric
Talend Data Integration
Talend Data Management Platform
Talend Data Services Platform
Talend ESB
Talend MDM Platform
Module
Talend Administration Center
Talend Artifact Repository
Talend CommandLine
Talend JobServer
Talend Studio
Content
ジョブデザインと開発
デプロイメント
管理と監視
JenkinsやAzureのような継続的インテグレーションサーバーを使用しない場合でも、Talend製品と互換性があるMavenコマンドを使えば一部のCIタスクを実行できます。

プロジェクトの手動ビルドが必要な場合に使用できる主なMavenオプション

Mavenオプション 説明
-f, --file<arg> 特定のPOMファイル(ここではTalendプロジェクトのpom.xmlのディレクトリー)を強制的に使用します。
-s, --settings<arg> 特定のユーザー設定ファイル(ここではカスタムのsettings.xmlファイルへのパス)を強制的に使用します。
-fn, --fail-never このオプションを使うと、プロジェクトのビルド結果に関わらず、ビルドが失敗することはありません。

このオプションはマルチモジュールのプロジェクトをビルドする時に便利です。

-e, --erros 実行エラーメッセージを生成します。

このオプションはMavenプラグインでのエラーを診断する場合に便利です。

-pl,--projects <arg> すべてのプロジェクトではなく、ビルドする特定のリアクタープロジェクトのカンマ区切りリストです。
-am,--also-make -plコマンドを使ってプロジェクトを指定した場合は、リストにあるプロジェクトで必要とされるプロジェクトもビルドされます。
-amd,--also-make-dependants -plコマンドを使ってプロジェクトを指定した場合は、リストにあるプロジェクトに依存しているプロジェクトもビルドされます。
-D,--define <arg> システムプロパティを定義します。

TalendのカスタムMavenオプションはすべて、-Dオプションと共に使用する必要があります。カスタムオプションのリストは、TalendのカスタムMavenビルドのオプションでチェックできます。

Maven CLIのオプションはすべてApache Maven Webサイトで参照できます。

カスタムMaven設定ファイルの取得

プロジェクトを手動でビルドする前の最初のステップとして、settings.xmlファイルを取得して保存し、環境に適合させます。

  1. このページの左側パネルにある[Downloads] (ダウンロード)タブからsettings.xmlファイルを取得します。
  2. このページのオンライン版(https://help.talend.com/)にある[Downloads] (ダウンロード)タブからsettings.xmlファイルを取得します。
  3. パラメーター値(NexusやArtifactoryのURL、ホスト名、ポート、認証情報など)を置換してファイルをお使いの環境に適用させ、変更を保存します。
    ヒント: 例として提供されているXXX参照をファイル内で探し、お使いの環境に対応する値に置換します。この例はNexusに対応しています。Artifactoryなど別のアーティファクトリポジトリーを使用している場合は、この例をお使いのリポジトリーのURLに合わせる必要があります。
  4. ディレクトリーを選択してこのファイルを保存します。このファイルへのパスはビルド時にMavenコマンドで使用されます。

Mavenビルドフェーズの選択

Mavenプロジェクトをビルドする場合はごく僅かなコマンドセットを習得するだけで結構です。pom.xmlファイルを使えば、期待どおりの結果が得られます。ビルドフェーズはそれぞれライフサイクルのステージを表します。必要となると思われるコマンドを以下に示します。

  • test - 適切なユニットテストフレームワークを使って、コンパイルされたソースコードをテストします。これらのテストでは、コードをパッケージ化したりデプロイしたりする必要はありません。
  • package - コンパイルされたコードを取得し、配布可能な形式(JARなど)でパッケージ化します。
    注: packageのMavenゴールの使用時に生成されたzipファイルからJavaコードを除外する場合は、次のように!include-java-sourcesパラメーターを追加します。
    mvn clean package -P !include-java-sources
  • install - ローカルリポジトリーにパッケージをインストールし、他のプロジェクトの依存項目としてローカルに使用します
  • deploy - ビルド環境で実行し、他の開発者やプロジェクトと共有できるよう最終パッケージをリモートリポジトリーにコピーします。

Mavenのフェーズについては、Mavenのドキュメンテーションを参照してください。

Mavenオプションを定義してプロジェクトをビルド

Mavenのビルドコマンドは、デプロイのニーズに合わせて適応可能です。コマンドの例は次のとおりです。

  • CICDプロジェクトのアーティファクトを.jarファイルか.zipファイルとしてビルド、テスト、パッケージ化し、Nexusスナップショットリポジトリーにデプロイする場合:
    options: '-f <ProjectName>/poms/pom.xml -s <PathToDirectory>/settings.xml -Dlicense.path=<PathToDirectory>/license -Dupdatesite.path=<updatesiteURL> -DaltDeploymentRepository=snapshots::default::http://XXX:8081/repository/snapshots/ -fn -e'
    goals: 'deploy'

    例:

    options: '-f CICD/poms/pom.xml -s /home/talend/CI_dir/settings.xml -Dlicense.path=/home/talend/talend_studio/license -Dupdatesite.path=http://company/updatesite -DaltDeploymentRepository=snapshots::default::http://nexus:8081/repository/snapshots/ -fn -e'
    goals: 'deploy'
  • CICDプロジェクトのアーティファクトを.jarファイルか.zipファイルとしてビルド、クリーニング、テスト、パッケージ化し、Dockerレジストリーにデプロイする場合:
    options: '-f <ProjectName>/poms/pom.xml -s <PathToDirectory>/settings.xml -Dlicense.path=<PathToDirectory>/license -Dupdatesite.path=<updatesiteURL> -Ddocker.push.registry=<DockerRegistryName> -Ddocker.push.username=<Dockerusername> -Ddocker.push.password=<DockerPassword> -Dtalend.docker.name=<DockerImageName> -Xms1024m -Xmx3096m'
    goals: 'clean deploy'

    例:

    options: '-f CICD/poms/pom.xml -s /home/talend/CI_dir/settings.xml -Dlicense.path=/home/talend/talend_studio/license -Dupdatesite.path=http://company/updatesite -Ddocker.push.registry=registry.example.com/group/project -Ddocker.push.username=TalendUser -Ddocker.push.password=V3ryCompl3xPwd -Dtalend.docker.name=cicd4talend -Xms1024m -Xmx3096m'
    goals: 'clean deploy'

パッチのインストール

パッチ(Talend Studio p2パッチ、手動パッチ、コンポーネントパッチなど)をインストールする必要がある場合は、ビルド時に-Dpatch.pathオプションを使用できます。

ローカルにインストールされたパッチの例:
options: '-f CICD/poms/pom.xml -s /home/talend/CI_dir/settings.xml -Dlicense.path=/home/talend/talend_studio/license -Dpatch.path=D:/patches/Patch_TPS-2222.zip,D:/patches/Patch_TPS-3333.zip'
goals: 'package'