gradle的version catalogs是从7.4起支持、8.0起稳定的声明式依赖管理方式,通过gradle/libs.versions.toml集中定义版本、依赖、插件及bundles,支持类型安全引用、多模块复用与一键升级。

Gradle 的 version catalogs 是一种声明式、类型安全的依赖版本管理方式,从 Gradle 7.4 开始正式支持(稳定版自 8.0 起),它通过 libs.versions.toml 文件集中定义依赖坐标和版本,让模块间复用更可靠、升级更可控。
创建并配置 version catalog 文件
在项目根目录下新建 gradle/libs.versions.toml(路径固定,不可更改),用 TOML 格式定义版本与依赖别名:
例如:
[versions]junit = "5.10.0"
kotlin = "1.9.20"
androidx-core = "1.12.0"
[libraries]
junit-api = { group = "org.junit.jupiter", name = "junit-jupiter-api", version.ref = "junit" }
kotlin-stdlib = { group = "org.jetbrains.kotlin", name = "kotlin-stdlib", version.ref = "kotlin" }
core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "androidx-core" }
[plugins]
kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" }
在 build.gradle(.kts) 中引用 catalog
启用插件后,Gradle 会自动识别 catalog 并生成类型安全的访问入口 libs:
Java Maven 项目审查工作流的通用输入处理。当 Java Maven 项目以 ZIP压缩包或 GitLab 仓库 URL 形式提供且需要...时使用。
- 在
settings.gradle.kts或settings.gradle中启用插件:
enableFeaturePreview("VERSION_CATALOGS") - 在
build.gradle.kts中直接使用:
implementation(libs.junit.api)
implementation(libs.core.ktx)
id(libs.plugins.kotlin.android) - 注意:TOML 中的层级(如
core-ktx→core.ktx)会自动转为点分命名,支持 IDE 自动补全
管理多模块项目的统一依赖
所有子模块共用同一份 libs.versions.toml,无需重复声明或同步版本号:
- 修改版本只需改 TOML 中一个字段(如
junit = "5.11.0"),所有引用libs.junit.api的地方自动生效 - 可定义别名组合,比如:
[libraries.test]
all = ["junit.api", "junit.engine"]
然后在构建脚本中写testImplementation(libs.test.all) - 支持版本对齐(version alignment):用
version.requireSame()约束相同组织下的不同库使用一致版本
验证与调试技巧
运行 ./gradlew dependencies --configuration compileClasspath 可查看实际解析出的依赖树;执行 ./gradlew generateLockfiles 可生成锁定文件确保可重现性。
若出现 Unresolved reference: libs,检查是否漏掉 enableFeaturePreview("VERSION_CATALOGS"),或 TOML 文件路径/语法是否有误(推荐用 IntelliJ IDEA 的 TOML 插件校验格式)。










