libs.versions.toml

libs.versions.toml不能被根项目共享

include子项目里的libs.versions.toml不能被根项目直接共享,最好是在在根项目的libs.versions.toml明确声明库版本,使用依赖传递库存在着隐式风险。

通常 Version Catalog 文件存放在 gradle/ 子目录下,即 gradle/libs.versions.toml

正确的配置方式

方案 A:使用默认约定(推荐)

Gradle 7.4+ 版本默认会自动查找并加载 gradle/libs.versions.toml 文件,并将其命名为 libs。‌你通常不需要在 settings.gradle 中编写任何 versionCatalogs 配置代码‌,只要文件路径正确即可。

  • ‌文件位置 ‌:<project-root>/gradle/libs.versions.toml
  • ‌settings.gradle.kts‌:无需额外配置。
  • ‌build.gradle.kts ‌:直接使用 implementation(libs.xxx)。
方案 B:显式自定义配置

如果需要显式指定文件路径(例如文件不在默认位置,或者你想自定义 catalog 名称),应使用 create 方法。

‌Kotlin DSL (settings.gradle.kts):

Kotlin 复制代码
dependencyResolutionManagement {
    versionCatalogs {
        // 创建一个名为 "libs" 的 catalog
        create("libs") {
            // 指定 toml 文件的路径
            // 注意:如果文件在 gradle 目录下,路径应为 "gradle/libs.versions.toml"
            from(files("gradle/libs.versions.toml")) 
        }
        
        // 如果有其他 catalog,可以继续 create
        // create("testLibs") {
        //     from(files("gradle/test-libs.versions.toml"))
        // }
    }
}

‌Groovy DSL (settings.gradle):

Groovy 复制代码
dependencyResolutionManagement {
    versionCatalogs {
        create("libs") {
            from(files("gradle/libs.versions.toml"))
        }
    }
}