使用Gradle构建一个带有Kotlin-DSL依赖关系的jar

时间:2017-09-11 13:50:02

标签: gradle kotlin gradle-kotlin-dsl

问题已经有了答案:how to include all the dependencies in a jar file虽然它适用于Groovy

我使用gradle与kotlin-dsl并且代码不兼容。我尝试使用以下几种方式使其工作:

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

虽然这不起作用。那么如何在gradle中使用kotlin-dsl包含依赖项?

1 个答案:

答案 0 :(得分:4)

这将有效:

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

copy { ... }中没有必要,您应该在JAR任务本身上调用from

注意:Gradle在解析后不允许更改依赖项。这意味着只有在配置dependencies { ... }后才能执行上面的块。