ビルドをバージョン カタログに移行する

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 ブロックで、プラグインを定義します。

移行手順

これらの手順は、記載されている順序どおりに行うことをおすすめします。ビルドは、ビルド スクリプトとカタログからの依存関係とプラグインを同時に消費できるため、時間をかけて依存関係とプラグインを個別に移行してください。

移行プロセスは次のとおりです。

  1. カタログに新しいエントリを追加します。
  2. Android プロジェクトを同期します。
  3. 以前の文字列宣言をカタログのタイプセーフなアクセサーに置き換えます。

依存関係を移行する

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

}

詳細

バージョン カタログを構成するその他の方法については、以下のリソースをご覧ください。

既知の問題

Gradle バージョン カタログは、現在も積極的に開発中です。現時点でサポートされていない項目については、既知の問題と制限事項をご覧ください。