Gradle 7.0 及以上版本集中管理项目依赖项的版本号、插件版本和库坐标
libs.versions.toml
是 Gradle 版本目录(Version Catalogs) 的一个配置文件,用于集中管理项目依赖项的版本号、插件版本和库坐标。它采用 TOML(Tom's Obvious, Minimal Language)格式,是 Gradle 7.0 及以上版本引入的功能。
主要作用
-
统一管理依赖版本:避免在多模块项目中重复定义版本号。
-
提高可维护性:修改依赖版本时只需修改一处。
-
代码提示支持:在 IDE(如 Android Studio)中提供自动补全。
文件结构示例
通常位于项目的 gradle
目录下,例如:
project-root/├── gradle/│ └── libs.versions.toml└── build.gradle.kts
文件内容示例:
[versions]
kotlin = "1.9.0"
compose = "1.5.0"[libraries]
# 定义库坐标
kotlin-stdlib = { module = "org.jetbrains.kotlin:kotlin-stdlib", version.ref = "kotlin" }
compose-ui = { module = "androidx.compose.ui:ui", version.ref = "compose" }[plugins]
android-application = { id = "com.android.application", version = "8.1.0" }
kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" }
关键部分
-
[versions]:定义版本号(如
kotlin = "1.9.0"
)。 -
[libraries]:定义依赖库的
group:artifact
和关联的版本(通过version.ref
)。 -
[plugins]:定义 Gradle 插件的 ID 和版本。
在 build.gradle 中使用
通过 libs
对象引用(需在 settings.gradle
中启用):
// settings.gradle.kts
enableFeaturePreview("VERSION_CATALOGS")
dependencyResolutionManagement {versionCatalogs {create("libs") {from(files("gradle/libs.versions.toml"))}}
}// build.gradle.kts
dependencies {implementation(libs.kotlin.stdlib)implementation(libs.compose.ui)
}plugins {alias(libs.plugins.android.application)alias(libs.plugins.kotlin.android)
}
优点
-
减少冲突:统一版本避免依赖冲突。
-
清晰分类:分离版本定义与具体依赖。
-
团队协作友好:版本变更更透明。
注意事项
-
需要 Gradle 7.0+ 和 Android Studio Arctic Fox 及以上版本。
-
TOML 文件需严格符合语法(如缩进、括号匹配)。
通过这种方式,你可以更高效地管理大型项目的依赖关系。