Я уже некоторое время пишу плагины Gradle на нескольких языках, используя их обычный сценарий сборки Groovy DSL.В последнее время я хотел узнать, как использовать их DSL-скрипт сборки Kotlin, но я не могу понять некоторые вещи.
У меня есть пример ниже:
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
с моим kotlin_version
, он прекрасно работает:
dependencies {
compile(kotlin("stdlib", kotlin_version))
}
Почему нельзя ссылаться на переменные внутри блока plugins
?