TeamCity 2020.1ヘルプ

Maven

Mavenビルドランナーでは、Apache Maven(英語)を使用してビルドを自動化できます。

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

Mavenランナー設定

オプション

説明

ゴール

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

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

POMファイルへのパス

Specify the path to the POM file relative to the build working directory.
By default, the property contains a pom.xml file. If you leave this field blank, the same value is put in this field. The path may also point to a subdirectory, and as such <subdirectory>/pom.xml is used.

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

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

作業ディレクトリ

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

Maven 設定

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

<オート>

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

<デフォルト>

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

<カスタム>

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

ユーザー設定

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

<デフォルト>

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

<カスタム>

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

定義済みの設定

If there are settings files uploaded to the TeamCity server via the administration UI, you can select one of the available options here. To upload settings file to TeamCity, click 設定ファイルを管理します。 Maven settings are defined on the project level. You can see the settings files defined in the current project or upload files on the プロジェクト設定 page using Maven 設定 . The files will be available in the project and its subprojects. The uploaded files are stored in the <TeamCity Data Directory>/config/projects/%projectID%/pluginData/mavenSettings directory. If necessary, they can be edited right there. The uploaded files are used both for the agent and server-side Maven functionality.
If Custom or Predefined settings are used, the path to the effective user settings file is available inside the maven process as the teamcity.maven.userSettings.path system property.

Javaパラメータ

オプション

説明

JDK

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

JDK ホーム・パス

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

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

You can specify such JVM command line parameters, for example, maximum heap size or parameters enabling remote debugging. These values are passed by the JVM used to run your build.

例:

-Xmx512m -Xms256m

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

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

オプション

説明

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

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

ビルド構成ごと

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

Mavenのデフォルト

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

The runner will use the location specified in the additional command-line parameter -Dmaven.repo.local . If the parameter is not specified, it will search for values set in settings.xml .

インクリメンタルビル

Select the 変更の影響を受けるモジュールのみをビルドする checkbox to enable incremental building of Maven modules.
The general idea of incremental building is to process only changed modules without spending time on reprocessing unchanged modules they are connected with. TeamCity utilizes this method to run tests only for changed Maven modules thus saving time when rerunning a build or a build chain.

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

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

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

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

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

Dockerの設定

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

コード・カバレッジ

The Maven build runner supports code coverage based on the IDEA coverage engine. To learn about configuring code coverage options, refer to the Javaコードカバレッジの設定 page.

同じマシンに複数のビルドエージェントがインストールされている場合、デフォルトではそれらは同じローカルリポジトリを使用します。ただし、各ローカルエージェントにカスタムローカルリポジトリを割り当てる方法は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 を指定してビルドを実行します。

最終更新日: 2020年7月22日