Shadow Jar不包含对fat jar的依赖

时间:2016-09-13 22:59:36

标签: gradle maven-shade-plugin

我是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文件只包含当前项目中的文件,排除了依赖项。为什么会这样?

1 个答案:

答案 0 :(得分:3)

您不需要定义from...部分。该插件将自动包含所有依赖项。