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?