一段时间以来,我一直在使用他们常用的 Groovy 构建脚本 DSL 以多种语言编写 Gradle 插件。最近我想学习如何使用他们的 Kotlin 构建脚本 DSL,但我不太明白一些事情。
我在下面有一个例子:
val kotlin_version = "1.2.41"
plugins {
application
kotlin("jvm").version(kotlin_version)
}
application {
mainClassName = "samples.HelloWorldKt"
}
dependencies {
compile(kotlin("stdlib"))
}
repositories {
jcenter()
}
但是,当我运行像“干净”这样的简单任务时,我收到以下错误:
* What went wrong:
Script compilation error:
Line 5: kotlin("jvm") version kotlin_version
^ Unresolved reference: kotlin_version
但是,如果我kotlin_version
用字符串文字替换,它可以正常工作:
val kotlin_version = "1.2.41"
plugins {
application
// kotlin("jvm").version(kotlin_version)
kotlin("jvm").version("1.2.41")
}
application {
mainClassName = "samples.HelloWorldKt"
}
dependencies {
compile(kotlin("stdlib"))
}
repositories {
jcenter()
}
但是,如果我dependencies
用 my 参数化块kotlin_version
,它工作得非常好:
dependencies {
compile(kotlin("stdlib", kotlin_version))
}
为什么不能在plugins
块内引用变量?