完全没有测试过,但我相信它应该是这样的:
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")
})
}
如果您还没有看到它,你应该熟悉gradle这个脚本科特林的project extensions和groovy interop功能。你真的需要挖掘你正在配置的groovy插件的来源,看看它期望如何使用闭包。 gradle脚本kotlin项目中的例子也是一个很好的指导。
编辑二○一六年十二月一十九日
的依赖管理插件的最新版本是now more gradle script kotlin friendly并允许下列:
configure<DependencyManagementExtension> {
imports {
it.mavenBom("io.spring.platform:platform-bom:Camden.SR2")
}
}
它仍然可以从一些科特林扩展功能中受益删除需要it
(使用接收器代替),但绝对是一种改进!
编辑2017年11月3日
现在作品,未经it
,像这样:
configure<DependencyManagementExtension> {
imports {
mavenBom("io.spring.platform:platform-bom:Camden.SR2")
}
}
非常有效的一个未经考验的解决方案。谢谢。 ;)不幸的是,我只是Kotlin新手。但是,谢谢你的提示,我会更好地审视代码。 – waste
不用担心。我相信当Gradle Script Kotlin更成熟时,Spring的指南/示例将会很快更新。虽然更好的解决方案是让Spring提供一些扩展功能来使DSL更友好一点(不需要'delegateClosureOf()')。例如'有趣DependencyManagementExtension.imports(进口:DependencyManagementHandler。() - > Unit){...}' –
目前没有工作 – Czar