Gradle: Typesafe project dependencies
Created at Sun, Feb 27, 2022Type-safe project dependenciesの紹介ブログです。Gradle 7.4で試しています。
Gradleでマルチモジュールプロジェクトを構成すると、例えば、プロジェクトlibAへの依存は、次のようにう書くことが出来ます。
// app/build.gradle.kts
dependencies {
implementation(project(":libA"))
...
}
この際に、projectで指定している :libA
の部分は文字列なのでtypesafeではなく、補完などが効きにくいです。(最近のIntelliJ、Android Studioだと補完が効いたりします)
ここで、今回紹介する Type-safe project dependenciesを使うと、次のように書くことが出来ます。
// settings.gradle
enableFeaturePreview("TYPESAFE_PROJECT_ACCESSORS")
// app/build.gradle.kts
dependencies {
implementation(projects.libA)
...
}
projectsから、プロジェクトlibA参照出来るようになり、補完がいい感じに効きます。
まとめ
Gradle 7.4段階では、まだFeature Previewですが、ktsと相性が良い技術になっています。 ktsを入れているようなプロジェクトの場合は、導入を検討するのも良いかもしれません。