将Maven阴影罐包含到其他阴影罐中

时间:2020-04-13 16:58:17

标签: java maven architecture maven-shade-plugin

我有两个Java项目 data-service 应用程序和 data-report 应用程序,data service应用程序生成某些用于处理的数据,而data-report应用程序应该使用数据服务应用程序来使用由它生成的数据来生成一些报告,这两个应用程序都应构建为Jar文件,因此我计划使用maven shade插件,因为它们使用了很多jars。

我需要将数据服务作为依赖项包含在数据报告中(由于某些限制,我无法使用其他技术,如rest)我遇到以下两个问题这种方法

1)两个应用程序均具有log4j文件和data.properties,两个文件均具有特定于每个应用程序的属性,您能否让我知道如何处理这种情况,我尝试了资源转换器但无法正常工作,请让我知道如果有人成功使用了它。

2)由于两个应用程序都使用类似的库,例如spring和hibernate,它将消除重复项吗?

3)让我在一个应用程序中使用gson版本1和gson versoin 1.2,它将如何处理此类情况?

4)我的方法正确吗?由于某些限制,我不想使用Maven模块。

1 个答案:

答案 0 :(得分:1)

否,每个jar都应该是一个库或一个可执行的jar(不能同时是两者)。应该在不包含库的情况下构建 的库(因此不包含阴影插件)。

因此,如果您有两个应用程序都使用的类,请构建第三个jar作为,并在两个应用程序中将其用作依赖项。

因此,您可以拥有三个不同的项目,或者您可以构建三个项目的多模块项目,但这要视情况而定。

相关问题