2

所以我有一个包含我所有模块的 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 关联?

提前致谢

4

2 回答 2

1

你不能;EAR 对其类路径没有那种级别的精细控制,除非您的应用服务器具有允许您执行此操作的非标准扩展。

这是 OSGi 设计的那种用例,但标准 JavaEE EAR 无法做到这一点。

您最简单的选择是将您的 EAR 分成 2 个,一个带有project1.warand common-classes-1.0.jar,另一个带有project2.war, project3.warand common-classes-1.1.jar

于 2011-02-21T12:57:19.610 回答
1

或者,您可以“重新打包”您的 war 文件以包含所需的公共 Jar。这样,您可以保留单个 EAR 文件。

于 2011-02-21T13:16:50.883 回答