完全沒有測試過,但我相信它應該是這樣的:
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