我有gradle多项目,如下所示:
- 项目
|
| - 普通
| - moduleA
| - moduleB
moduleA是Spring Boot应用程序,其gradle构建文件使用SpringBootGradle插件。该模块取决于常见的结节。
moduleB也是Spring Boot应用程序,它的gradle构建文件使用SpringBootGradle插件。该模块依赖于moduleA。
在使用gradle构建我的项目后,我希望moduleA.jar和moduleB.jar存在并且它们存在。 但是当我尝试运行moduleB.jar时,我得到一个异常(Spring Boot初始化异常)。我发现moduleB.jar包含lib目录,其中包含来自moduleA的所有依赖项以及moduleA.jar(也包含依赖项)。
所以我需要的是找到一种方法在构建期间将moduleA plain jar添加为我的moduleB的依赖项。
答案 0 :(得分:0)
您需要configure module A so that it can be used as a dependency:
bootRepackage {
classifier = 'exec'
}
这意味着你最终会得到两个罐子。一个没有可以用作依赖关系的分类器,另一个分类器是可执行的胖jar,其中依赖嵌套在其中。
答案 1 :(得分:0)
Spring Boot 2.3 使用
bootJar {
classifier = 'boot' // or whatever
}
fat jars(用于模块 A 和 B)将具有名称 *-boot.jar
而模块 B 将仅包含 module-a.jar
见here