Для описания скриптов сборки Gradle мы можем использовать Kotlin через build.gradle.kts файлы. Общей проблемой для глобально определить версию Kotlin, которая будет использоваться, как в dependencies, так и в разделе build plugin (довольно необычно использовать разные версии для данного случая).
Рассмотрим следующий код (Gradle 4.3.1):
plugins {
var pluginVersion = "1.2.30"
kotlin("jvm").version(kotlinVersion)
// more
}
var dependencyVersion = "1.2.30"
dependencies {
compile(kotlin("stdlib", kotlinVersion))
compile(kotlin("reflect", kotlinVersion))
testCompile(kotlin("test", kotlinVersion))
// more
}
Как вы можете видеть, kotlin version (1.2.30 в этом случае) определяется дважды: dependencyVersion и pluginVersion, что очень часто не отличается. Из-за ограничений DSL невозможно получить доступ к pluginVersion извне блока plugins или получить доступ к dependencyVersion из блока plugins.
Как строка версии "1.2.30" может быть извлечена в одно место?