假设以下配置:
build.dependencies.gradle:

ext {
  libraries = [:]
}

libraries += [
  library : [group: 'com.example', name: 'library', version: '1.1.1']
]
build.gradle.kts:
apply(from = "build.dependencies.gradle")

dependencies {
  implementation(libraries["library"]) // does not work
}

有没有办法在build.gradle.kts中获取Groovy脚本提供的值?

最佳答案

它不起作用,因为Kotlin是不同于Groovy的静态/强类型语言。尚未在Gradle API的任何对象上定义libraries

您可以这样访问它:

dependencies {
    implementation((project.extra["libraries"] as LinkedHashMap<*, *>)["library"]!!)
}

println(project.extra["libraries"])
project.extra[“libraries”]返回一个Object,因此我们需要正确地对其进行强制转换以获取下一个值。它也被标记为@Nullable,因此也被标记为!!运算符。



管理依赖版本的更好方法是利用Java Platform插件。

10-08 15:08