将 Maven shade jar 包含到其他 shade jar 中
include maven shade jar into other shade jar
我有两个Java项目data-service app和data-report app,data service app产生某些数据它用于某些处理,数据报告应用程序应该使用数据服务应用程序来使用它生成的数据来生成一些报告,这两个应用程序都应该构建为 Jar 文件,因此我计划使用 maven shade 插件,因为它们使用很多罐子。
我需要在 data-report 中包含 data-service 作为依赖项(由于某些原因,我不能使用任何其他技术,例如 rest局限性)我对这种方法有以下两个问题
1) 这两个应用程序都有 log4j 文件和 data.properties,这两个文件都有特定于每个应用程序的属性,你能告诉我如何处理这种情况吗,我试过资源转换器但没有用如果有人成功使用它,请告诉我。
2) 由于这两个应用程序都使用类似的库,例如 spring 和 hibernate,它会消除重复项吗?
3) 让我在一个应用程序中使用 gson 版本 1 和 gson versoin 1.2 它将如何处理这种情况?
4) 我的做法对吗?由于某些限制,我不想使用 maven 模块。
不,每个 jar 应该是库或可执行 jar(不能两者都是)。一个库应该构建 没有 包括库(所以没有阴影插件)。
因此,如果两个应用程序都使用了 类,请构建第三个 jar 作为 库 并将其作为依赖项在两个应用程序中使用。
所以要么你有三个不同的项目,要么你构建一个三个的多模块项目,但这要视情况而定。
我有两个Java项目data-service app和data-report app,data service app产生某些数据它用于某些处理,数据报告应用程序应该使用数据服务应用程序来使用它生成的数据来生成一些报告,这两个应用程序都应该构建为 Jar 文件,因此我计划使用 maven shade 插件,因为它们使用很多罐子。
我需要在 data-report 中包含 data-service 作为依赖项(由于某些原因,我不能使用任何其他技术,例如 rest局限性)我对这种方法有以下两个问题
1) 这两个应用程序都有 log4j 文件和 data.properties,这两个文件都有特定于每个应用程序的属性,你能告诉我如何处理这种情况吗,我试过资源转换器但没有用如果有人成功使用它,请告诉我。
2) 由于这两个应用程序都使用类似的库,例如 spring 和 hibernate,它会消除重复项吗?
3) 让我在一个应用程序中使用 gson 版本 1 和 gson versoin 1.2 它将如何处理这种情况?
4) 我的做法对吗?由于某些限制,我不想使用 maven 模块。
不,每个 jar 应该是库或可执行 jar(不能两者都是)。一个库应该构建 没有 包括库(所以没有阴影插件)。
因此,如果两个应用程序都使用了 类,请构建第三个 jar 作为 库 并将其作为依赖项在两个应用程序中使用。
所以要么你有三个不同的项目,要么你构建一个三个的多模块项目,但这要视情况而定。