我有一个“实用项目”和一个包含该“实用项目”的“EAR 项目”。'Utility Project' 中的所有类最终都打包为 JAR 并放置在导出的 EAR 的 'lib' 目录中,例如:
EAR.ear
META-INF
MANIFEST.MF
lib
utility.jar (which expands to):
META-INF
MANIFEST.MF
com
acme
Foo.class
Bar.class
但是,“实用程序项目”依赖于已使用“属性 > Java 构建路径 > 库”添加到构建路径的库 (freemarker.jar)。我要做的就是将 freemarker.jar 添加到 EAR 中,如下所示:
EAR.ear
META-INF
MANIFEST.MF
lib
**freemarker.jar**
utility.jar (which expands to):
META-INF
MANIFEST.MF
com
acme
Foo.class
Bar.class
通过在 Eclipse 中四处搜索,我发现了 4 种实现这一目标的潜在途径,但都没有奏效。如果有人能直截了当地告诉我我应该做什么,那就太好了。但以防万一,我将在这里迭代它们:
从“公用事业项目”属性:
- 如果我单击“Java Build Path > Order and Export”并选择“freemarker.jar”进行导出,则 jar 根本不会出现在 EAR 文件中。
- 如果我单击“Java EE 模块依赖项”并选择“freemarker.jar”库作为依赖项,它会显示:
这个 JAR 是一个 EAR 项目的捆绑库,应该打包在 EAR 的库目录中。它与您尝试创建的清单类路径依赖项冲突。如果您创建此依赖项,JAR 将被打包在 EAR 的根(不是库)目录中。您确定要继续吗?
从“EAR 项目”属性:
- 如果我单击“Java EE Module Dependencies > Add JARs...”并导航到“freemarker.jar”,并使其成为依赖项,它将被添加到 EAR 的根目录:/freemarker.jar
- 如果我执行与上述相同的操作,但选中“In Lib Dir”复选框,它将被添加到 lib 文件夹中,但包含在另一个 lib 文件夹中:/lib/lib/freemarker.jar
谢谢。