首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Gradle使用Kotlin-DSL构建具有依赖关系的jar

使用Gradle使用Kotlin-DSL构建具有依赖关系的jar
EN

Stack Overflow用户
提问于 2017-09-11 13:50:01
回答 2查看 4K关注 0票数 5

对于这个问题,已经有了一个答案:how to include all the dependencies in a jar file,尽管它是针对Groovy的

我在kotlin-dsl中使用gradle,代码不兼容。我试着用以下几种方法使它发挥作用:

代码语言:javascript
复制
tasks.withType<Jar> {
    configurations["compileClasspath"].forEach { file: File ->
        copy {
            from(zipTree(file.absoluteFile))
        }
    }
}

虽然这不管用。那么,如何在gradle中使用kotlin-dsl来包含依赖关系呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-09-11 14:14:59

这将起作用:

代码语言:javascript
复制
tasks.withType<Jar>() {
    configurations["compileClasspath"].forEach { file: File ->
        from(zipTree(file.absoluteFile))
    }
}

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

注意: Gradle不允许在解决依赖关系后更改它们。这意味着,只有在配置了dependencies { ... }之后,才应该执行上面的块。

票数 7
EN

Stack Overflow用户

发布于 2022-08-17 12:42:59

我的案子

代码语言:javascript
复制
withType<Jar> {
    enabled = true
    isZip64 = true
    duplicatesStrategy = DuplicatesStrategy.EXCLUDE

    archiveFileName.set("$project.jar")

    from(sourceSets.main.get().output)
    dependsOn(configurations.compileClasspath)
    from({
        configurations.compileClasspath.get().filter {
            it.name.endsWith("jar")
        }.map { zipTree(it) }
    }) {
        exclude("META-INF/*.RSA", "META-INF/*.SF", "META-INF/*.DSA")
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46157338

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档