Android / Gradle / Programming

NowInAndroidのsettings.gradleを読み解く – Android Kotlin Gradle

NowInAndroidのGradleを読み解くシリーズの第1弾です。
NowInAndroidではCompositeビルドを使用して、マルチプロジェクトのビルドを行っています。
今回はbuild-logicにあるsettings.gradle.ktsを見ていきます。

settings.gradle.kts

設定スクリプトは、Settingsオブジェクトを構成します。
このSettingsオブジェクトは、設定スクリプトの「デリゲートオブジェクト」と呼ばれます。
デリゲートオブジェクトとは、そのスクリプトが操作を行う対象のオブジェクトを意味します。

dependencyResolutionManagement { // 1
    repositories { // 2
        google() // 3
        mavenCentral() // 3
    }
    versionCatalogs { // 4
        create("libs") { // 5
            from(files("../gradle/libs.versions.toml")) // 6
        }
    }
}

rootProject.name = "build-logic" // 7
include(":convention") // 8

nowinandroid/build-logic/settins.gradle.ktsより

1. 依存関係の定義
dependencyResolutionManagement」では、プロジェクト間での依存関係解決を定義します。

2. リポジトリの定義
repositories」では、プロジェクトのリポジトリを定義します。
{…}の中は、プロジェクトのRepositoryHandlerに対して実行されます。

3. リポジトリの追加
google()」では、GoogleのMaven repositoryで依存関係を探すリポジトリを、「mavenCentral()」では、Maven Central repositoryで依存関係を探すリポジトリを追加します。

4. VersionCatalogsの定義
versionCatalogs」では、バージョンカタログの定義を行います。

5. コンテナにアイテムを追加
create(String name, Action action)」を使用し、「libs」という名のバージョンカタログを作成しています。

6. バージョンカタログの読み込み
from(Object obj)」では、バージョンカタログの情報を「”../gradle/libs.versions.toml“」から読み込んでいます。

7. ルートプロジェクトの名前変更
rootProject」でルートプロジェクトのProjectクラスを受け取り、「.name = “build-logic”」で名前を変更しています。

8. プロジェクトをビルドに追加
プロジェクトをビルドに追加することで、複数のプロジェクトを一緒にビルドすることができます。
プロジェクトの指定は、スラッシュ (/) で区切らずに、コロン (:) を区切り文字として使用する必要があります。

おわりに

次回nowinandroid/build-logic/convention/build.gradle.ktsについて解説します。
ご要望等がありましたらお気軽にコメントまでお願いします。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です