TeamCity 2019.2ヘルプ

Maven

特定のMavenアーティファクトが変更された場合、URLから新しいMavenベースのビルド構成を自動的に作成し、依存関係ビルドトリガーを設定できることに注意してください。

このページで:

Mavenランナー設定

オプション

説明

ゴール

ゴールフィールドで、TeamCityに実行させたい、スペースで区切られたMavenゴールのシーケンスを指定します。Mavenのゴールの中には、バージョン管理システムを使用できるものがあり、そのため、VCS設定値の設定との互換性がなくなる場合があります。TeamCityにそのようなゴールを実行させたい場合:

  • バージョン管理設定ページのVCSチェックアウトモードドロップダウンリストで「エージェントに自動的に」を選択します。これにより、バージョン管理システムをゴール実行ソフトウェアで利用できるようになります。Perforce VCSで release:prepare ゴールを使用するには、以下のセクションを参照してください。

POMファイルへのパス

ビルド作業ディレクトリに対するPOMファイルへの相対パスを指定してください。
デフォルトでは、このプロパティには pom.xml ファイルが含まれています。このフィールドを空白のままにすると、同じ値がこのフィールドに入ります。パスはサブディレクトリを指すこともあり、その場合は <subdirectory>/pom.xml が使用されます。

追加のMavenコマンドラインパラメーター

コマンドラインパラメータのリストを指定してください。

作業ディレクトリ

ビルドチェックアウトディレクトリと異なる場合は、作業ディレクトリを構築するを指定します。

Maven 設定

使用するMavenバージョンを選択します。TeamCity 2017.1以降インストールされたバージョンを管理できます。

<オート>

Mavenインストールへのパスは M2_HOME 環境変数から取得されます。それ以外の場合は、現在のデフォルトバージョンが使用されます。

<デフォルト>

バンドル版の3.0.5がデフォルトとして使用されます。TeamCity 2017.1以降、あなたはデフォルトを変更することができます。

<カスタム>

カスタムMavenバージョンへのパスを指定してください。

ユーザー設定

ここで使用するユーザー設定の種類を指定してください。これはMavenのコマンドラインオプション -s または --settingsと同等です。利用可能なオプションは以下のとおりです。

<デフォルト>

設定は、エージェントのデフォルトのMavenの場所から取得されます。サーバーロジックについては、Mavenのサーバー側設定を参照してください。

<カスタム>

代替ユーザー設定ファイルへのパスを入力してください。パスはエージェント上でもサーバー上でも有効でなければなりません。Mavenのサーバー側設定を参照してください。

定義済みの設定

管理UIを介してTeamCityサーバーにアップロードされた設定ファイルがある場合、ここで使用可能なオプションのいずれかを選択できます。設定ファイルをTeamCityにアップロードするには、設定ファイルを管理するをクリックします。Maven設定は、プロジェクトレベルで定義されます。現在のプロジェクトで定義されている設定ファイルを確認するか、Maven 設定を使用してプロジェクト設定ページでファイルをアップロードできます。ファイルはプロジェクトとそのサブプロジェクトで利用可能になります。アップロードされたファイルは、<TeamCity Data Directory> / config / projects /%projectID%/ pluginData / mavenSettingsディレクトリに保存されます。必要に応じて、すぐに編集できます。アップロードされたファイルは、エージェントとサーバー側のMaven機能の両方に使用されます。
カスタム設定または事前定義設定が使用されている場合、有効なユーザー設定ファイルへのパスは、mavenプロセス内で teamcity.maven.userSettings.path システムプロパティとして使用できます。

Javaパラメータ

オプション

説明

JDK

JDKを選択してください。このセクションは利用可能なオプションを詳しく述べています。デフォルトは JAVA_HOME 環境変数またはエージェント自身のJavaです。

JDK ホーム・パス

このオプションは、上記の<カスタム>が選択されている場合に使用できます。このフィールドを使用して、ビルドの実行に使用されるカスタムJDKへのパスを指定します。このフィールドをブランクのままにすると、JDKホームへのパスは、コンピューター上のエージェントの JAVA_HOME 環境変数、またはビルド・エージェント構成ファイル(buildAgent.properties)に指定されている env.JAVA_HOME プロパティから読み取られます。これらの値が指定されていない場合、TeamCityはビルドエージェントプロセス自体のJavaホームを使用します。

JVMコマンドラインパラメータ

最大ヒープサイズリモートデバッグを有効にするパラメータなど、JVMのコマンドラインパラメータを指定できます。これらの値は、ビルドを実行するために使用されるJVMによって渡されます。
例:

-Xmx512m -Xms256m

ローカルアーティファクトリポジトリ設定

次のいずれかのオプションを選択します。

オプション

説明

エージェントごと (デフォルト)

エージェントによって実行されるすべてのビルドによって生成された成果物をエージェントのシステムディレクトリに格納するには、別のリポジトリを使用します。

ビルド構成ごと

現在のビルド構成のすべてのビルドによって生成されたアーティファクトを格納するために別のリポジトリを使用します。

Mavenのデフォルト

デフォルトのMavenリポジトリの場所を使用します。リポジトリは、すべてのビルド構成とマシン上のすべてのエージェント間で共有されます。

インクリメンタルビル

Mavenモジュールの増分ビルドを有効にするには、変更の影響を受けるモジュールのみをビルドするチェックボックスを選択します。一般的な考え方は、依存関係によって相互接続された多数のモジュールがある場合、変更はおそらく(直接または推移的に)それらのうちのいくつかだけに影響を与えるということです。そのため、影響を受けたモジュールのみをビルドし、残りのモジュールを前回のビルドからビルドした結果を使用すると、全体の結果は、プロジェクト全体をゼロから作成した場合と同じ労力と時間で等しくなります。

Maven自体はインクリメンタルビルドのサポートが非常に限られているため、TeamCityは独自の変更影響分析アルゴリズムを使用して影響を受けるモジュールのセットを決定し、影響を受けるモジュールの依存関係を作成するための特別な予備段階を使用します。

最初にTeamCityは、親関係とさまざまな依存関係スコープを考慮して、独自の変更影響分析を実行し、影響を受けるモジュールを判別します。次に、ビルドは2つの連続したMaven実行に分割されます。

準備フェーズと呼ばれる最初のMavenの実行は、影響を受けるモジュールの依存関係を構築することを目的としています。準備段階では、依存関係クラスが存在しないか矛盾していることが原因で、2回目の実行時にコンパイラやその他のエラーが発生しないようにします。

メインフェーズと呼ばれる2回目のMavenの実行では、メインゴール(たとえば test)が実行されるため、変更の影響を受けるテストのみが実行されます。

また、トピックに関する関連ブログ投稿(英語)も確認してください。

Dockerの設定

このセクションでは、ビルドステップを実行するために使用されるDockerイメージを指定できます。

コード・カバレッジ

IDEAカバレッジエンジンに基づくカバレッジサポートがMavenランナーに追加されます。コードカバレッジオプションの設定については、Javaコードカバレッジの設定ページを参照してください。

同じマシンに複数のビルドエージェントがインストールされている場合、デフォルトではそれらは同じローカルリポジトリを使用します。ただし、各ローカルエージェントにカスタムローカルリポジトリを割り当てる方法は2つあります。

  • teamcity-agent/conf/buildAgent.propertiesに次のプロパティを指定します。

system.maven.repo.local=%system.agent.work.dir%/<subdirectory_name>

たとえば、%system.agent.work.dir%/m2-repositoryです。

  • 各ビルドエージェントを異なるユーザーアカウントで実行します。

異なるVCSでのMavenリリース

TeamCityでサポートされている異なるVCSで release:prepare Mavenタスクを実行するには、Mavenリリースプラグイン(英語)の少なくとも2.0バージョンを使用していることを確認してください。

MavenリリースとPerforceの使用

以下を確認してください。

  1. Maven Releaseプラグインにはチケットベースの認証(英語)を使用してください。

  2. TeamCityを使用せずにコマンドラインから実行した場合、release:prepare Mavenタスクが機能することを確認してください。

TeamCityのビルド構成のPerforce VCSルート設定で、次のようにします。

  1. エージェントのチェックアウトを有効にします。

  2. Perforce VCSルート設定でチケットベースの認証を使用するを有効にします。

  3. ビルドエージェント環境に、Maven Release プラグインの実行を妨げる可能性のある時折のP4変数がないことを確認してください。

  4. Mavenビルドステップのゴールフィールドに release:prepare を指定してビルドを実行します。

Git VCSでMavenリリースを使用する

  1. pom.xmlでGit SSH URLをSCMのURL(英語)として使用します。

  2. TeamCityを使用せずにコマンドラインから実行した場合、release:prepare mavenタスクが機能することを確認してください。

TeamCityエージェントについて :

1. エージェントにGitがインストールされており、UnixライクなOSではエージェントの $PATH に、Windowsでは %PATH% 環境変数に追加されていることを確認してください。

2. エージェントで、次を実行してアカウントのIDを設定する

git config --system user.email "buildserver@example.com" git config --system user.name "TeamCity Server"

3. Git VCSがエージェントの既知のホストデータベースに追加されていることを確認してください。

TeamCityサーバー上 :

1. SSH鍵のGitをTeamCityサーバーにアップロードします。

TeamCityのビルド構成の設定に :

2. バージョン管理設定ページで、エージェントのチェックアウトを有効にします。

3. Git VCSルートで、秘密鍵認証を有効にします。

4. SSH エージェントビルド機能を構成に追加します。

5. Mavenビルドステップのゴールフィールドに release:prepare を指定してビルドを実行します。


関連事項:

概念 : ビルド・ランナー
管理者ガイド : Mavenアーティファクト依存関係トリガー | Mavenビルド設定の作成