0

我目前有一个父 pom,它声明了两个模块:一个 ear 和一个 war。耳朵依赖于战争(并使用组/工件ID和包装类型声明它的依赖关系)。

从父 pom 级别打包时,reactor 会拾取两个工件并将战争正确打包到耳朵中,正如您所期望的那样。但是,当从 ear 的项目 pom 打包时(尽管在两个项目中都声明了指向父 pom 的元素),ear 无法找到战争工件。

我知道,当在耳朵级别打包时,Maven 会正确找到到达父级的方式,但是它是否不会迭代到父级包含的各种模块以获取工件?

谢谢 :)

4

2 回答 2

0

听起来你的育儿结构被打破了,如果 EAR 依赖于 WAR,那么它应该是一个子模块。

于 2012-04-11T16:09:37.077 回答
0

这就是 Maven 的工作方式。没关系。解决依赖关系时,Maven 在反应器中查找它们,然后是本地存储库,然后是远程存储库。因此,当从父项目级别进行构建时,两个项目都在反应器中,因此 EAR 可以轻松选择 WAR。(具体来说,不是因为父子关系,而是因为它们是模块。)但是,当您单独构建EAR模块时,reactor无法提供WAR以及本地repo和远程repo。如果您将 WAR 模块安装到本地 repo 中mvn install,然后尝试构建 EAR,将使用本地 repo 找到 WAR 工件。

于 2012-04-11T19:35:11.893 回答