Gradle
このビルドステップは、Gradle(英語) プロジェクトのビルドに合わせて調整されており、build.gradle および build.gradle.kts を含むすべての Gradle ビルド構成をサポートします。
前提条件
Gradle でビルドを実行するには、Gradle 0.9-rc-1 以降がすべてのエージェントマシンにインストールされている必要があります。あるいは、Gradle ラッパー(英語)を使用する場合は、バージョン管理にチェックインされた Gradle ラッパースクリプトを適切に構成する必要があります。
ステップ設定
Gradle ステップ設定のリストとそれに対応する UI ラベルは、ビルド構成を構成するかパイプラインを構成するかによって若干異なります。
メイン設定
- タスク
このステップで実行する Gradle タスクのリスト(スペース区切り)。例:
:myproject:clean :myproject:buildまたはclean buildこのフィールドが空白の場合、defaultタスクが使用されます。TeamCity は現在、Gradle を使用した Java プロジェクトのビルドをサポートしています。Groovy、Scala、その他のプロジェクトのビルドはテストされていません。このフィールドには追加のタスクオプション(英語)も入力する必要があります。例:
:myproject:run --args="foo --bar"またはclean test --tests MyTestClass.myTestMethod- 作業ディレクトリ
ビルドステップが開始されるディレクトリです。デフォルトでは、エージェントがリモートソースをチェックアウトするルートディレクトリと同じです。詳細については、作業ディレクトリを構築するトピックを参照してください。
- Gradle ラッパーを使用する
有効にすると、TeamCity はチェックアウトディレクトリ内の Gradle ラッパースクリプトを検索し、対応するステップ設定で指定された Gradle タスクと追加のコマンドラインパラメーターを使用して適切なスクリプトを起動します。この場合、Gradle ホームパスで指定された Gradle とエージェントにインストールされている Gradle は無視されます。
追加設定
- Gradle ホーム
Gradle ホームディレクトリ(
binディレクトリの親ディレクトリ)へのパス。指定されていない場合、TeamCity はエージェントのGRADLE_HOME環境変数で指定された Gradle を使用します。エージェントに Gradle がインストールされていない場合は、代わりに Gradle ラッパーを使用できます。- ファイルのビルド
作業ディレクトリを基準にした Gradle ビルドファイル(英語)へのパス。空(デフォルト)の場合、Gradle は独自の設定を使用して決定します。
- 追加の Gradle コマンドラインパラメーター
オプションのスペース区切りの Gradle プロパティ(英語)のリスト。例:
-x test(または--exclude-task test)、--configuration-cache、または-PmyProjectProperty=foo- Gradle ラッパーパス
作業ディレクトリを基準とした Gradle ラッパースクリプトへのオプションのパス。
- インクリメンタルビルド
TeamCity は、Gradle
:buildDependents機能(英語)を利用できます。インクリメンタルビルドオプションが有効になっている場合、TeamCity はビルドの変更によって影響を受ける Gradle モジュールを検出し、それらのモジュールに対してのみ:buildDependentsコマンドを開始します。これにより、Gradle は変更によって影響を受けるモジュールのみを完全にビルドしてテストします。
実行パラメーター
- デバッグ
-dGradle コマンドラインパラメーターを追加します。- スタックトレース
-sGradle コマンドラインパラメーターを追加します。
コンテナー設定
このビルドステップは、Docker または Podman によってデプロイされたコンテナー内で実行できます。
クラシックビルド構成ステップでは、イメージ名、プラットフォーム、追加の実行引数を指定できる一連のプロパティが表示されます。明示的にイメージをプルするにより、このステップが実行されるたびに、TeamCity がターゲットコンテナーからイメージをプルすることが保証されます。

TeamCity が指定のイメージを検索するレジストリを指定するには、プロジェクトに Docker/Podman 接続を追加します。デフォルトでは、この接続により TeamCity は Docker Hub(英語) から匿名モードでイメージをプルできますが、任意のコンテナーレジストリに設定できます。
詳細については、次の記事を参照してください: コンテナーラッパー。
コンテナー内でステップを実行するには、Docker で実行をオンに切り替えます。有効にすると、この要素に 2 つのオプションが表示されます。

Docker イメージ — Docker または Podman レジストリからイメージをプルできます。デフォルトでは、TeamCity は Docker、Hub イメージを匿名モードでプルできます。その他のケース(プライベートイメージ、カスタムイメージレジストリ、Docker、Hub のレート制限に違反しない非匿名モードなど)の場合は、パイプラインまたはジョブレベルで Docker 統合を設定してください。
Dockerfile — Dockerfile からカスタムイメージを構築できます。
コードカバレッジ
Gradle ビルドランナーは、IDEA コードカバレッジエンジンおよび JaCoCo に基づくコードカバレッジをサポートします。
Java パラメーター
- JDK
JDK を選択してください。このセクションは利用可能なオプションを詳しく述べています。デフォルトは
JAVA_HOME環境変数またはエージェント自身の Java です。- JDK ホームパス
このオプションは、上で <カスタム> を選択した場合に使用できます。このフィールドを使用して、ビルドの実行に使用するカスタム JDK へのパスを指定します。このフィールドを空白のままにすると、JDK ホームへのパスは、エージェントマシンの
JAVA_HOME環境変数から、またはビルドエージェント構成ファイル (buildAgent.properties) で指定されたenv.JAVA_HOMEプロパティから読み取られます。これらの値が指定されていない場合、TeamCity はビルドエージェントプロセス自体の Java ホームを使用します。- JVM コマンドラインパラメーター
追加の JVM コマンドラインパラメーターを使用すると、初期および最大ヒープサイズの設定、追加のログの有効化、必要なバイトコード検証モードの選択などを行うことができます。
標準 (
-で始まる、たとえば-verbose:[class|module|gc|jni]または--dry-run) と非標準 (-Xで始まる、たとえば-Xmx<size>または-XstartOnFirstThread) の両方の JVM オプションを指定できます。複数のコマンドラインパラメーターを指定するには、区切り文字としてスペースを使用します。例:
-verbose:gc -Xdiag -Xcomp -Xmx512m -Xms256m
ビルドプロパティ
Gradle ビルドでは、TeamCity システムプロパティは Java システムプロパティとは異なります。
通常の Java システムプロパティにはグローバルにアクセスできます。これらのプロパティの値を取得するには、
System.getProperty("my.property")メソッドまたはproviders.systemProperty("my.property").get()メソッドを使用します。TeamCity システムプロパティは、ビルドの初期化時にプロジェクト(英語)オブジェクトに書き込まれます。
Projectが利用可能な場所であればどこからでも TeamCity システムプロパティにアクセスできます(必要なプロパティが利用可能かどうかを確認するには、project.hasProperty("property.name")を使用してください)。
TeamCity システムプロパティを参照するための推奨される方法は次のとおりです。
または、システムプロパティの名前が正当な名前識別子(たとえば、system.myPropertyName = myPropertyValue)の場合:
構成キャッシュ
バージョン 2024.03 以降、TeamCity Gradle ランナーは構成キャッシュ(英語)をサポートします。この機能は、構成フェーズの結果をキャッシュし、このキャッシュを後続のビルドで再利用することで、ビルドパフォーマンスを大幅に向上させます。
次のいずれかに該当する場合、構成キャッシュが有効になります。
ランナーの追加の Gradle コマンドラインパラメーターフィールドに
--configuration-cacheパラメーターが追加されました。gradle.propertiesファイルには、org.gradle.configuration-cache=true(Gradle 8.1+ の場合) またはorg.gradle.unsafe.configuration-cache=true(古い Gradle バージョンの場合) の行が含まれます。これは、プロジェクトのgradle.propertiesファイルとGRADLE_USER_HOMEディレクトリ内のファイルの両方に適用されます。
現在の制限と既知の問題
次の場合には、Gradle 構成キャッシュが期待どおりに動作しない可能性があります。
仮想ビルド ( 並列テストまたはマトリックスビルド実行中に生成されたもの) が、キャッシュが作成されたときとは異なる順序で実行される場合。詳細については、この YouTrack チケットを参照してください: TW-86556(英語)。
クリーンチェックアウトが有効な場合 ;
ビルドステップが Docker または Podman コンテナー内で実行される場合。
Gradle が構成キャッシュの問題を無視する(英語)場合。
追加のコマンドライン引数のリストに、Gradle ツール API (
--daemon、--stopなど) でサポートされていない引数が含まれている場合。
ビルドごとに値が常に変化するビルドパラメーター (たとえば、build.id または build.number) は、要求時にのみロードされます。直接参照 (たとえば、project.teamcity["build.number"]) を使用してこれらのプロパティの値を取得することはできますが、findProperty() メソッド (project.findProperty("build.number")) では結果は生成されません。Gradle スクリプトでこのメソッドを呼び出す必要がある場合は、次の回避策を使用します。
新しい構成パラメーターを作成し、影響を受けるパラメーター
MyBuildNumber=%build.number%にマップします。新しいシステムプロパティを作成し、それを新しい構成パラメーター
system.buildNumber = %MyBuildNumber%にマップします。${findProperty}("buildNumber")}構文を使用して、Gradle スクリプトで必要な値を取得します。
この回避策により、ビルド構成で構成キャッシュが再利用されなくなるため、無効にすることもできます。
コードとしての構成
次のスニペットは、YAML (パイプラインのみ) と Kotlin DSL の両方の形式でカスタマイズされたビルドステップを示しています。
関連ページ:
作業ディレクトリを構築する
ビルド作業ディレクトリは、ビルドプロセスの現在のディレクトリとして設定されるディレクトリです。デフォルトでは、これはビルドチェックアウトディレクトリと同じディレクトリです。ビルドスクリプトをチェックアウトディレクトリ以外の場所から実行する必要がある場合は、ビルドステップ設定の拡張オプションの作業ディレクトリフィールドを使用して場所を明示的に指定できます。作業ディレクトリフィールドに入力されるパスは、絶対パスまたはビルドチェックアウトディレクトリからの相対パスのいずれかです。このオプションを使用す...
パイプライン設定
この記事では、パイプライン全体に使用できる、共通のパイプラインの動作を指定する設定について説明します。パイプライン設定の編集:コアパイプライン設定を表示および編集するには、右上隅の設定トグルをクリックし、ビジュアルエディターでジョブを囲むパイプラインキャンバス領域内の任意の場所をクリックします。ビジュアルエディターからコードに切り替えて、マークアップを直接編集することもできます。パラメーター:パラメーターは、生の値を参照に置き換えるために設計された名前と値のペアです。TeamCity はパラ
ビルドパラメーターの設定
パラメーターは、TeamCity 設定およびビルドスクリプトの構文を介して参照するペアです。パラメーター部分は、生の値 () にすることも、別のパラメーターへの参照 () を含めることもできます。パラメーター型:TeamCity は次の 3 種類のパラメーターをサポートします。構成パラメーター — ビルド構成内で設定を共有することを主な目的とするパラメーター。これらのパラメーターを使用して、テンプレートから作成された構成やレシピを使用する構成をカスタマイズすることもできます。TeamCity は...
並列テスト
TeamCity は、テストを複数のビルドエージェントに分散することでテストの実行を並列化できるようになり、テストの全体的な期間を最小限に抑えることができます。ビルドのテストは自動的にバッチに分割でき、各バッチは個別のビルドエージェントで実行されます。この機能は、ビルドが複数のエージェントのリソースを利用して技術的に並行して実行できる一方で、結果的に同じエージェントで多くの独立したテストを実行する場合の一般的なユースケースに対応します。以前は、このような動作をエミュレートするために、一部のユーザ...
マトリックスビルド
マトリックスビルドビルド機能を使用すると、指定されたパラメーター値を反復処理し、すべての組み合わせに対してビルドを生成することで、ビルドのコレクションを定義できます。例: 次のパラメーターで構成されたマトリックスビルドが与えられたとします。Browser: Chrome, Safari, Firefox env.ShouldFail: true, false Java: 11, 17, 21 マトリックスビルドがトリガーされると、、の指定された値のすべての組み合わせに対してビルドが実行され、次のビ...
Kotlin DSL
TeamCity では、バージョン管理で設定を XML 形式で保存するだけでなく、DSL (Kotlin 言語に基づく) で設定を保存することもできます。バージョン管理に保存された DSL を使用すると、プログラムで設定を定義できます。Kotlin は静的に型指定されるため、IDE で自動補完機能を自動的に受け取ります。これにより、利用可能な API オプションの発見がはるかに簡単になります。TeamCity での Kotlin DSL の使用に関するブログ投稿シリーズと推奨リファクタリングの記...