我正在尝试使用基于 Kotlin 的 gradle 文件中的以下内容构建一个 fat jar。
val fatJar = task("fatJar", type = Jar::class) {
baseName = "safescape-lib-${project.name}"
// manifest Main-Class attribute is optional.
// (Used only to provide default main class for executable jar)
from(configurations.runtimeClasspath.map({ if (it.isDirectory) it else zipTree(it) }))
with(tasks["jar"] as CopySpec)
}
tasks {
"build" {
dependsOn(fatJar)
}
}
但是,fat jar 已扩展了所有依赖项。我希望将 jars 按原样包含在/lib 目录中,但我不知道如何实现这一点。
任何人都可以指导我如何实现这一目标吗?
谢谢
最佳答案
嗯,您在规范的 map
部分中使用了 zipTree
,它的行为符合 the documentation :它解压缩不是目录的文件。
如果您想要 /lib
中的 jar,请将 from
替换为:
from(configurations.runtimeClasspath) {
into("lib")
}
关于gradle - Fat Jar 使用 Gradle Kotlin DSL 扩展依赖关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56518451/