ext no buildscript não pode ser reconhecido pelo Gradle Kotlin DSL

Atualmente, estou tentando escrever alguns códigos para experimentar os recursos reativos do Spring e a extensão kotlin no Spring 5, e também preparei um Kotlin DSL gradle build.gradle.kt para configurar a compilação gradle.

obuild.gradle.kt é convertido dos códigos de modelo do Spring Boot gerados porhttp://start.spring.io.

Mas oext nobuildscript não pode ser detectado pelo Gradle.

buildscript {
  ext { }
}

oext causará erro de construção do Gradle.

Para tornar as variáveis emclasspath("org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion") ecompile("org.jetbrains.kotlin:kotlin-stdlib-jre8:$kotlinVersion") trabalho, eu adicionei as variáveis da maneira mais difícil.

val kotlinVersion = "1.1.4"
val springBootVersion = "2.0.0.M3"

Mas tenho que declará-los na melhor localização global e duplicá-los nobuildscript.

Código:https://github.com/hantsy/spring-reactive-sample/blob/master/kotlin-gradle/build.gradle.kts

Existe uma abordagem elegante para fazerext trabalhos?

Atualizar: Existem algumas abordagens feias:

Do exemplo de Gradle Kotlin DSL,https://github.com/gradle/kotlin-dsl/tree/master/samples/project-properties, declara as propriedades em gradel.properties.

kotlinVersion = 1.1.4
springBootVersion = 2.0.0.M3

E use-o em build.gradle.kts.

buildScript{
   val kotlinVersion by project

}
 val kotlinVersion by project //another declare out of buildscript block.

Semelhante ao acima, declare-os no bloco buildScript:

buildScript{
   extra["kotlinVersion"] = "1.1.4"
   extra["springBootVersion"] = "2.0.0.M3"
   val kotlinVersion: String by extra

}
 val kotlinVersion: String by extra//another declare out of buildscript block.

Como posso evitar a duplicação deval kotlinVersion: String por extra?

questionAnswers(3)

yourAnswerToTheQuestion