Version Catalog
モジュールのバージョンを一元管理する機構
メリット
プロジェクトで使うモジュールのバージョン情報を一か所で管理することができる
一か所変更すればすべて変更できる
(ほかのバージョン管理方法と比較して)手軽
補完ができる
TOML 形式で記述した場合、機械的にパースしやすく自動でのバージョン管理ツールを利用しやすい
Gradle プラグインのバージョンもまとめて記載できる
ややこしいが 依存解決 とは別(正確に言えば解決する前の解決対象を記載するという段階)なので、たとえば version の省略 などは使えず、実際に runtimeClasspath のバージョンが version catalog に記載されたものがつかわれるとは限らない。
composite build されたプロジェクト側では直接は使えなさそう。
settings file で以下のように相対パスで指定する必要がある
code:settings.gradle.kts
dependencyResolutionManagement {
versionCatalogs {
create("lib") {
from(files("../gradle/libs.versions.toml"))
}
}
}
Intellij IDEA 上では別の問題があり、 composite build の中では Intellij IDEA が埋め込みで指定しているバージョン以上の機能が使えない場合があるため 2021.1 以下では 6.8 以上の機能が使えない。
https://docs.gradle.org/7.0/userguide/platforms.html#sub:central-declaration-of-dependencies
Incubating Gradle 7.0
Promoted Gradle 7.4