假设以下配置: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插件。