Использование Gradle для создания банки с зависимостями с Kotlin-DSL

Уже есть ответ на вопрос: как включить все зависимости в файл jar, хотя это для Groovy

Я использую gradle с kotlin-dsl и код несовместим. Я попытался заставить его работать, используя несколько способов, в том числе:

 tasks.withType<Jar> { configurations["compileClasspath"].forEach { file: File -> copy { from(zipTree(file.absoluteFile)) } } } 

Хотя это не работает. Итак, как включить зависимости, используя kotlin-dsl в gradle?

Это будет работать:

 tasks.withType<Jar>() { configurations["compileClasspath"].forEach { file: File -> from(zipTree(file.absoluteFile)) } } 

Нет необходимости в copy { ... } , вы должны позвонить from самой задачи JAR.

Примечание. Gradle не позволяет изменять зависимости после их разрешения. Это означает, что вышеприведенный блок должен выполняться только после настройки dependencies { ... } .