Gradle バージョン カタログにより、拡張性の高い方法で依存関係とプラグインを追加および管理できます。Gradle バージョン カタログを使用すると、複数のモジュールがある場合に、依存関係とプラグインを簡単に管理できます。個々のビルドファイルに依存関係の名前とバージョンをハードコードし、依存関係をアップグレードする必要があるたびに各エントリを更新するのではなく、さまざまなモジュールが Android Studio の支援を受け、タイプセーフな方法で参照可能な依存関係の中心となるバージョン カタログを作成できます。
このページでは、Android アプリをバージョン カタログに移行するための基本情報について説明します。詳しくは以下をご覧ください。 ビルド依存関係を追加すると Gradle のドキュメント。
バージョン カタログ ファイルを作成する
まず、バージョン カタログ ファイルを作成します。ルート プロジェクトの gradle
フォルダに、libs.versions.toml
というファイルを作成します。Gradle は、デフォルトで libs.versions.toml
ファイルでカタログを検索するため、このデフォルト名を使用することをおすすめします。
libs.versions.toml
ファイルに、これらのセクションを追加します。
[versions]
[libraries]
[plugins]
このセクションは次のように使用されます。
versions
ブロックで、依存関係とプラグインのバージョンを保持する変数を定義します。これらの変数は、後続のブロック(libraries
ブロックとplugins
ブロック)で使用します。libraries
ブロックで依存関係を定義します。plugins
ブロックで、プラグインを定義します。
移行手順
これらの手順は、記載されている順序どおりに行うことをおすすめします。ビルドは、ビルド スクリプトとカタログからの依存関係とプラグインを同時に消費できるため、時間をかけて依存関係とプラグインを個別に移行してください。
移行プロセスは次のとおりです。
- カタログに新しいエントリを追加します。
- Android プロジェクトを同期します。
- 以前の文字列宣言をカタログのタイプセーフなアクセサーに置き換えます。
依存関係を移行する
libs.versions.toml
ファイルの versions
セクションと libraries
セクションの両方に、依存関係ごとにエントリを追加します。プロジェクトを同期してから、ビルドファイル内の宣言をカタログ名に置き換えます。
次のコード スニペットは、依存関係を削除する前の build.gradle.kts
ファイルを示しています。
Kotlin
dependencies { implementation("androidx.core:core-ktx:1.9.0") }
Groovy
dependencies { implementation 'androidx.core:core-ktx:1.9.0' }
次のコード スニペットは、バージョン カタログ ファイルで依存関係を定義する方法を示しています。
[versions]
ktx = "1.9.0"
[libraries]
androidx-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "ktx" }
カタログの依存関係ブロックに推奨される命名は、ケバブケースです(
androidx-ktx
など)と、
コード補完支援
指定します。
依存関係を必要とする各モジュールの build.gradle.kts
ファイルでは、TOML ファイル内で定義した名前により依存関係を定義します。
Kotlin
dependencies { implementation(libs.androidx.ktx) }
Groovy
dependencies { implementation libs.androidx.ktx }
プラグインを移行する
libs.versions.toml
ファイルのバージョンとプラグインのセクションの両方に、各プラグインのエントリを追加します。プロジェクトを同期してから、ビルドファイルの plugins{}
ブロック内の宣言をカタログ名に置き換えます。
次のコード スニペットは、プラグインを削除する前の build.gradle.kts
ファイルを示しています。
Kotlin
// Top-level `build.gradle.kts` file plugins { id("com.android.application") version "7.4.1" apply false } // Module-level `build.gradle.kts` file plugins { id("com.android.application") }
Groovy
// Top-level `build.gradle` file plugins { id 'com.android.application' version '7.4.1' apply false } // Module-level `build.gradle` file plugins { id 'com.android.application' }
次のコード スニペットは、バージョン カタログ ファイルでプラグインを定義する方法を示しています。
[versions]
androidGradlePlugin = "7.4.1"
[plugins]
android-application = { id = "com.android.application", version.ref = "androidGradlePlugin" }
依存関係と同様に、plugins
ブロック カタログの推奨フォーマットは、
ケバブケース(android-application
など)であるため、
コード補完支援
指定します。
次のコードは、トップレベルとモジュール レベルの build.gradle.kts
ファイル内で com.android.application
プラグインを定義する方法を示しています。バージョン カタログ ファイルからのプラグインには alias
を、バージョン カタログ ファイル以外からのプラグイン(コンベンション プラグインなど)には id
を使用します。
Kotlin
// Top-level build.gradle.kts plugins { alias(libs.plugins.android.application) apply false } // module build.gradle.kts plugins { alias(libs.plugins.android.application) }
Groovy
// Top-level build.gradle plugins { alias libs.plugins.android.application apply false } // module build.gradle plugins { alias libs.plugins.android.application }
詳細
バージョン カタログを構成するその他の方法については、以下のリソースをご覧ください。
- バージョン カタログの TOML ファイル形式 カタログ ファイルを構成するための追加オプションについて説明しています。
- Now in Android は、バージョン カタログを使用したサンプルアプリです。
既知の問題
Gradle バージョン カタログは、現在も積極的に開発中です。現時点でサポートされていない項目については、既知の問題と制限事項をご覧ください。