所以我有一个包含我所有模块的EAR。所有模块使用的共享JAR都放在EAR的默认./lib/文件夹中。我还有一个JAR文件的多个版本,每个模块将使用一个版本。例如,如果我的EAR中有以下战争:
project1.war
project2.war
project3.war
我有几个JAR文件:
common-classes-1.0.jar
common-classes-1.1.jar
那么,如何将project1与common-classes-1.0.jar相关联,将project2和project3与common-classes-1.1.jar相关联?
提前致谢
答案 0 :(得分:1)
你不能;除非您的应用服务器具有允许您执行此操作的非标准扩展,否则EAR对其类路径没有那么精细的控制级别。
这是OSGi专为此设计的用例,但标准的JavaEE EAR无法做到这一点。
您最简单的选择是将您的EAR分成2个,其中一个包含project1.war
和common-classes-1.0.jar
,另一个包含project2.war
,project3.war
和common-classes-1.1.jar
答案 1 :(得分:1)
或者,您可以“重新打包”您的战争文件以包含所需的公共Jars。通过这种方式,您可以保留一个EAR文件。