LoginSignup
0
0

More than 1 year has passed since last update.

libs.versions.tomlのgroupとname

Posted at

GradleのVersion Catalogを使うと、依存関係の追加方法が少し変わる。

dependencies {
    compileOnly(libs.android.gradlePlugin)
    compileOnly(libs.kotlin.gradlePlugin)
    compileOnly(libs.ksp.gradlePlugin)
}

これは、nowinandroidbuild-logic:conventionモジュールのbuild.gradle.ktsの一部の内容。

このlibs.android.gradlePluginや、libs.ksp.gradlePluginの内容はどこで定義されているのかというと、libs.versions.tomlにて定義されている。

[versions]
androidGradlePlugin = "7.4.1"
kotlin = "1.8.0"
ksp = "1.8.0-1.0.9"

[libraries]
# Dependencies of the included build-logic
android-gradlePlugin = { group = "com.android.tools.build", name = "gradle", version.ref = "androidGradlePlugin" }
kotlin-gradlePlugin = { group = "org.jetbrains.kotlin", name = "kotlin-gradle-plugin", version.ref = "kotlin" }
ksp-gradlePlugin = { group = "com.google.devtools.ksp", name = "com.google.devtools.ksp.gradle.plugin", version.ref = "ksp" }

nowinandroidでは、gradleディレクトリにて保存されている。
そして、この設定ファイルはモジュールに存在するsettings.gradle.ktsにてその読み込み先が設定される。

基本的には、gradleディレクトリにlibs.versions.tomlを配置すると自動的に読み込んでくれるらしい

dependencyResolutionManagement {
    ...
    versionCatalogs {
        create("libs") {
            from(files("../gradle/libs.versions.toml"))
        }
    }
}

そして、私がよくわからなかったのはTomlファイル内で使われているgroupnameである。

android-gradlePlugin = { group = "com.android.tools.build", name = "gradle", version.ref = "androidGradlePlugin" }

調べてみると、このgroupは従来のimplementation "androidx.room:room-runtime:$room_version"の一番左端の部分を表している。
そして、nameは真ん中を表している。

本題に戻ると、group = "com.android.tools.build"こちらを表している。

そしてname = "gradle"こちらを表している。

ちなみに、libs.versions.tomlで定義したプロパティ名がハイフン区切りの場合は、ドット(.)を使ってlibs変数を通してアクセスすることができる。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0