我是Gradle和阴影罐(Gradle version of Maven's Shade plugin)的新手。我正在构建一个胖jar,我想在其中合并服务文件(这就是我首先使用shadow 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文件只包含当前项目中的文件,排除了依赖项。为什么会这样?
答案 0 :(得分:3)
您不需要定义from...
部分。该插件将自动包含所有依赖项。