Gradle7 Version Catalog 如何与 buildSrc 配合使用?
Gradle buildSrc接入version catalog实现步骤
核心配置流程
- 第一步:在buildSrc目录下创建settings.gradle.kts文件,添加如下配置,关联根项目的libs.versions.toml文件
dependencyResolutionManagement { repositories { // 按需添加你的项目仓库配置 mavenCentral() google() } versionCatalogs { create("libs") { // 路径根据buildSrc和根项目的相对位置调整,默认根目录下的buildSrc对应路径为../gradle/libs.versions.toml from(files("../gradle/libs.versions.toml")) } } }
- 第二步:buildSrc/build.gradle.kts无需额外特殊配置,即可直接在该文件中通过
libs前缀访问toml中定义的依赖、版本号等配置 - 第三步:buildSrc中约定插件的使用
- 如果是
*.kts格式的约定插件,可直接在插件代码中访问libs对象读取配置 - 如果是Java/Kotlin编写的原生插件类,可通过
project.extensions.getByType(VersionCatalogsExtension::class.java).named("libs")获取catalog实例,再读取对应配置
- 如果是
常见问题排查
- 确认项目使用的Gradle版本 >=7.4,低于该版本对buildSrc共享version catalog的支持存在缺陷
- 验证toml文件路径正确性:可在buildSrc的settings.gradle.kts中添加打印语句
println(files("../gradle/libs.versions.toml").get().singleFile.exists()),执行构建时确认输出为true - 清理缓存重试:如果配置正确仍无法访问,执行
./gradlew clean && rm -rf .gradle buildSrc/.gradle清理全局和项目级缓存后重新构建
内容的提问来源于stack exchange,提问作者A Bit of Help
相关产品推荐
相关产品推荐

