Сценарий Gradle Котлин и dependencyManagement

Я пытаюсь перенести сценарий сборки приложения Spring Cloud Stream в Kotlin. Пока все хорошо, кроме блока управления зависимостями. В сети трудно что-либо найти. Образцы не охватывают и эту тему.

Как преобразовать следующий блок в build.gradle.kts? Спасибо.

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

1 ответов


полностью не проверял, но я считаю, что это должно быть что-то вроде этого:

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 Котлин скрипта расширения проекта и groovy interop функции. Вам действительно нужно копаться в источнике плагина groovy, который вы настраиваете, чтобы увидеть, как он ожидает использовать закрытие. Примеры в проекте gradle script kotlin также являются хорошим руководством.

редактирование 19 Декабря 2016

последняя версия плагина управления зависимость теперь больше gradle скрипт Котлин дружественный и позволит следующее:

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

Он все еще может извлечь выгоду из некоторых функций расширения Kotlin, чтобы удалить необходимость it (вместо приемника), но прогресс налицо!

Редактировать 3 Ноя 2017

теперь он работает без it, как Итак:

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