Shadow Jar 不包含依赖项到 fat jar

Shadow Jar doesn't include dependencies into fat jar

我是 Gradle 和 shadow jar (Gradle version of Maven's Shade plugin) 的新手。我正在构建一个 fat jar,我想在其中合并服务文件(这就是我首先使用 shadow jar 的原因)。 According to the documentation shadowJar 任务继承自 gradle Jar 任务。因此,人们会假设它会像 jar 任务一样工作。

这是 jar 任务的片段:

 jar {
    zip64 true
    from { configurations.runtime.collect { it.isDirectory() ? it : zipTree(it) }
}

因此,它生成了一个 fat jar,其中包含所有依赖项,这是预期的。当我将任务名称从 jar 更改为 shadowJar 时,如下所示:

 shadowJar {
    zip64 true
    from { configurations.runtime.collect { it.isDirectory() ? it : zipTree(it) }
} 

我得到一个 jar 文件,其中只包含当前项目的文件,不包括依赖项。为什么会这样?

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