为了简单起见,这是我的项目的基本结构:
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,它将包括sdk
和common
的源代码,这样我就能够将其发布到JFrog,并允许我的客户端使用它,并且可以访问公共的DTO。此外,与JAR一起发布的POM应该包括Spring中的依赖项,如common
模块,具体取决于。
这可能吗?
1条答案
按热度按时间o8x7eapl1#
要实现您的目标,您可以使用shadowing,请参阅以下答案:https://stackoverflow.com/a/59104725/12473843
P.S.要修复Maven-publish插件未将依赖项包含到生成的pom.xml文件中的问题,请参考https://stackoverflow.com/a/39486292/12473843