java 如何为多个Gradle模块构建和发布单个JAR

vmjh9lq9  于 2023-06-04  发布在  Java
关注(0)|答案(1)|浏览(127)

为了简单起见,这是我的项目的基本结构:

root
|-- api
|   |-- src
|   `-- build.gradle (dependency on common)
|-- common
|   |-- src // (include common DTOs)
|   `-- build.gradle (dependency on some spring modules)
|-- sdk 
|   |-- src
|   `-- build.gradle  (dependency on common)

我想发布sdk模块,包括common源代码:
这就是我所尝试的:
1.仅仅构建sdk项目就会创建一个只包含sdk源代码的JAR,并期望在运行时类部件上可以使用common源代码。
1.我尝试了fat-jar(shadow-jar),但其中包含了Spring依赖项,而我希望将它们排除在外,只在我发布到JFrog的POM文件中引用它们
我尝试做的是为sdk模块构建JAR,它将包括sdkcommon的源代码,这样我就能够将其发布到JFrog,并允许我的客户端使用它,并且可以访问公共的DTO。此外,与JAR一起发布的POM应该包括Spring中的依赖项,如common模块,具体取决于。
这可能吗?

o8x7eapl

o8x7eapl1#

要实现您的目标,您可以使用shadowing,请参阅以下答案:https://stackoverflow.com/a/59104725/12473843
P.S.要修复Maven-publish插件未将依赖项包含到生成的pom.xml文件中的问题,请参考https://stackoverflow.com/a/39486292/12473843

相关问题