Nol*_*uen 5 groovy gradle kotlin build.gradle gradle-kotlin-dsl
假设以下配置:
build.dependencies.gradle:
ext {
libraries = [:]
}
libraries += [
library : [group: 'com.example', name: 'library', version: '1.1.1']
]
Run Code Online (Sandbox Code Playgroud)
build.gradle.kts:
apply(from = "build.dependencies.gradle")
dependencies {
implementation(libraries["library"]) // does not work
}
Run Code Online (Sandbox Code Playgroud)
有没有办法获取 Groovy 脚本提供的值build.gradle.kts?
它不起作用\xe2\x80\x99,因为与 Groovy 不同,Kotlin 是静态/强类型语言。libraries未在 Gradle\xe2\x80\x99s API 的任何对象上定义。
您可以像这样访问它:
\n\ndependencies {\n implementation((project.extra["libraries"] as LinkedHashMap<*, *>)["library"]!!)\n}\n\nprintln(project.extra["libraries"])\nRun Code Online (Sandbox Code Playgroud)\n\nproject.extra[\xe2\x80\x9clibraries\xe2\x80\x9d]返回一个,Object所以我们需要正确地转换它才能获得下一个值。它也被标记为@Nullable因此!!运算符。
\xe2\x80\x94
\n\n管理依赖项版本的更好方法是利用Java 平台插件。
\n| 归档时间: |
|
| 查看次数: |
523 次 |
| 最近记录: |