🌟
[Android]モジュール間で簡単にバージョン管理
Gradle
の7
からの新機能として、モジュール間の依存ライブラリのバージョン管理を簡単にするversion catalog
という機能があります。
この方法を使用することで、今までトップレベルのbuild.gradle
で管理してきたライブラリのバージョン管理がより簡単になります。
version catalog
を使う
使うためには、2つのgradle
ファイルの修正が必要です。
setting.gradle
enableFeaturePreview("VERSION_CATALOGS")
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
google()
mavenCentral()
}
versionCatalogs {
libs {
alias("core-ktx").to("androidx.core:core-ktx:1.7.0")
}
}
}
アプリ・モジュールのbuild.gradle
dependencies {
implementation(libs.core.ktx)
}
オプトインが必要
version catalog
の機能はオプトインが必要になります。
enableFeaturePreview("VERSION_CATALOGS")
この記載がないと、versionCatalogs
を書いてもビルドエラーとなります。
バージョンをまとめることができる
関係する幾つかのライブラリのバージョンを同じにしたい場合などは、下記のように記載します。
dependencyResolutionManagement {
versionCatalogs {
libs {
version('groovy', '3.0.5')
version('checkstyle', '8.37')
alias('groovy-core').to('org.codehaus.groovy', 'groovy').versionRef('groovy')
alias('groovy-json').to('org.codehaus.groovy', 'groovy-json').versionRef('groovy')
alias('groovy-nio').to('org.codehaus.groovy', 'groovy-nio').versionRef('groovy')
}
}
}
バンドルすることができる
さらに、関係する幾つかのライブラリをまとめることもできます。
setting.gradle
dependencyResolutionManagement {
versionCatalogs {
libs {
...
bundle('groovy', ['groovy-core', 'groovy-json', 'groovy-nio'])
}
}
}
build.gradle
dependencies {
implementation libs.bundles.groovy
}
Discussion