Gradle Kotlin DSL: defina a versão do Kotlin em um local único

Para descrever os scripts de construção do Gradle, podemos usar o Kotlin viabuild.gradle.kts arquivos. É um problema comum definir globalmentea Versão Kotlin a ser usada, tanto nodependencies e também na construçãoplugin seção (é bastante incomum ter versões diferentes em uso para o caso especificado).

Considere o seguinte código (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
}

Como você pode ver, o kotlinversion (1.2.30 neste caso) é definidoduas vezes: dependencyVersion epluginVersion, que muitas vezesnão difere. Devido a restrições DSL, é impossível acessar opluginVersion de fora doplugins bloquear ou acessar odependencyVersion de dentro doplugins quadra.

Como pode a string da versão,"1.2.30" ser extraído para um único local?

questionAnswers(3)

yourAnswerToTheQuestion