Gradle Script Kotlin y dependencyManagement

Estoy intentando adaptar el script de compilation de la aplicación Spring Cloud Stream a Kotlin. Hasta ahora, todo bien, excepto el bloque de administración de dependencies. Es difícil encontrar algo en la networking. Las muestras no cubren ese tema, también.

¿Cómo convierto el siguiente bloque en build.gradle.kts ? Gracias.

 dependencyManagement { imports { mavenBom "org.springframework.cloud:spring-cloud-dependencies:Camden.SR2" } } 

Totalmente no probado, pero creo que debería ser algo como esto:

 import io.spring.gradle.dependencymanagement.DependencyManagementExtension import io.spring.gradle.dependencymanagement.ImportsHandler configure<DependencyManagementExtension> { imports(delegateClosureOf<ImportsHandler> { mavenBom("org.springframework.cloud:spring-cloud-dependencies:Camden.SR2") }) } 

Si no lo ha visto, debe estar familiarizado con las extensiones de proyecto de gradle script kotlin y las funciones de interoperabilidad groovy . Realmente tiene que profundizar en el origen del plugin groovy que está configurando para ver cómo espera usar el cierre. Los ejemplos en el proyecto de escritura de gradle kotlin también son una buena guía.

Editar 19 dic. 2016

La última versión del complemento de administración de dependencies ahora es más compatible con kotlin y permitirá lo siguiente:

 configure<DependencyManagementExtension> { imports { it.mavenBom("io.spring.platform:platform-bom:Camden.SR2") } } 

Todavía podría beneficiarse de algunas funciones de extensión de Kotlin para eliminar la necesidad (usando un receptor en su lugar), ¡pero definitivamente una mejora!

Editar 3 nov 2017

Ahora funciona sin it , así:

 configure<DependencyManagementExtension> { imports { mavenBom("io.spring.platform:platform-bom:Camden.SR2") } } 
  • kotlin y @Valid Spring anotación
  • ¿Debo usar @Repository cuando solo uso JdbcTemplate en mi class DAO?
  • Enfoque correcto para la class de Kotlin inyectada de constructor inmutable
  • Cómo usar la dependency injection en las testings de Spek
  • Instant no se puede serializar al formatting apropiado incluso con jackson-datatype-jsr310
  • Excepción lanzada al usar @Service en Kotlin
  • Kotlin & Hibernate IllegalArgumentException: no se puede establecer el campo String Job.name en Job
  • Spring Boot 2 y Kotlin (con Maven)
  • Iniciación de la class Kotlin Spring con aspecto
  • Cómo inyectar el context DSL de JOOQ en la class Kotlin
  • Reactor Spring 5 - Emisión de elementos cada 1 segundo