gradle - 影子 jar 不将依赖项包含到 fat jar 中

标签 gradle maven-shade-plugin

我是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/

相关文章:

java - 在gradle中创建zip(zip任务)时如何创建一个空文件夹?

xml - float 操作按钮无法实例化/膨胀错误

Maven:改为在第三方依赖项中使用 Shade 版本

maven - 使用 Maven Shade 插件创建包含依赖 jar 的依赖文件夹

maven - Apache Spark Hive,具有Maven阴影的可执行JAR

java - 尝试将特定的库打包到我的 jar 中,但不起作用

android - 支持的最低 Gradle 版本为 4.6。当前版本是 4.1

android - 安装react-native-image-crop-picker后构建失败

java - 添加扩展到 libgdx 项目 (gradle)

java - Maven 阴影插件重新定位和捆绑不起作用