【发布时间】:2012-09-19 06:51:22
【问题描述】:
看了各种建议后,我似乎仍然无法对ear文件有任何成功的maven策略。
我有这个结构:
父 pom.xml: ...
<modules>
<module>MyProject-ear</module>
<module>MyProject-ejb</module>
<module>MyProject-war</module>
</modules>
(ejb/war/ear 将此作为父级)
我正在使用 maven-war-plugin / maven-ejb-plugin / maven-ear-plugin。
EAR 模块具有 ejb/war 项目作为依赖项。
现在,如果我想建立自己的耳朵,我需要先建立战争。如果我没有,那只是不是最新版本。
有没有更好的办法?
编辑:仅供参考,打开一个 netbeans 错误,只需单击“运行”即可获得运行我的项目的有效解决方案:http://netbeans.org/bugzilla/show_bug.cgi?id=218807
【问题讨论】:
-
模块顺序不正确。将 war 模块放在顶部,使其在 ear 模块之前构建,ear 模块应该是列表中的最后一个。如果你然后建立你的父母,耳朵文件将是正确的。如果您只构建 ear 模块,您将遇到不是最新的 .war 依赖项的问题
-
@wemu 模块的顺序只有在没有其他方法确定构建顺序时才相关。在他的示例中,耳朵依赖于战争,这将导致正确的构建顺序。 maven.apache.org/guides/mini/guide-multiple-modules.html
-
我不这么认为。 ear 模块将看到一个依赖项并尝试在本地存储库中解析它,然后在远程存储库中。依赖项不会告诉模块是在哪里构建的。如果有一个 CI 构建可以确保 .war 是最新的,那不会是一个问题,但我不会颠倒模块构建顺序。我经常看到这种行为,以至于无法相信链接状态是完全正确的。安全总比后悔好:)
-
@wemu 看起来很合理,我会检查一下
-
在这里似乎没有帮助。不过,也许它会修复我的自动构建中的某些问题(我认为我曾经必须构建两次才能正常工作)。
标签: java maven ear maven-war-plugin maven-ear-plugin