Gradle 多项目 jar 不包含依赖 类

Gradle Multiproject jar doesnt include dependent classes

这可能是个愚蠢的问题,但我在理解 gradle 编译时遇到了一些严重的问题

-假设我有这样的项目结构

proj-- pro1--src
           --build.gradle
    -- pro2--src
       --build.gradle
    --build.gradle
    --settings.gradle

并且 pro2 有 2 个依赖项,比如 log4j 和 pro1

现在,当我尝试 运行 gradle jar 任务时,它会生成一个包含 jar "pro2.jar" 的构建目录 但它不包括 pro1

的依赖项 类

但在 maven 中这工作正常

请帮帮我

谢谢

我找到了上述的解决方案。 结果我错了。它在 maven 中也做了同样的事情。

为了在 maven 中包含所有依赖项,使用了一个额外的插件。 "maven-dependency-plugin"

在 gradle 的情况下,我们需要创建一个 fatJar。或者为了更多的定制,我们可以创建一个 ShadowJar


胖罐

jar{
from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } }
}