我是Gradle和Shadow jar(Gradle version of Maven's Shade plugin)的新手。我正在构建一个胖jar,我想在其中合并服务文件(这就是为什么我首先使用影子jar的原因)。
According to the documentation shadowJar任务继承自gradle Jar任务。因此,人们会假设它将完全像jar任务一样工作。
这是jar任务的代码段:
jar {
zip64 true
from { configurations.runtime.collect { it.isDirectory() ? it : zipTree(it) }
}
结果,它产生了一个胖子,所有依赖项都爆炸了,这是预料之中的。当我将任务名称从jar更改为shadowJar时,如下所示:
shadowJar {
zip64 true
from { configurations.runtime.collect { it.isDirectory() ? it : zipTree(it) }
}
我得到一个jar文件,其中仅包含当前项目中的文件,不包括依赖项。为什么会这样呢?
最佳答案
您不需要定义from...
部分。该插件将自动包含所有依赖项。
关于gradle - 影子 jar 不将依赖项包含到 fat jar 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39480205/