Maven包装耳朵从项目级别发现依赖,但不从父级发现

时间:2012-04-11 15:58:16

标签: maven build packaging ear pom.xml

我现在有一个父pom声明了两个模块:耳朵和战争。耳朵依赖于战争(并且使用组/工件ID和包装类型声明它的依赖性)。

当从父pom级别进行打包时,反应堆会拾取两个工件,并按照您的预期将战争正确打包到耳中。然而,当从耳朵的项目pom打包时(尽管两个项目中的元素都指向父pom),耳朵找不到战争神器。

我知道,当在耳朵级别进行打包时,Maven会正确地找到它的父节点,但是它不会迭代到父节点包含的各种模块来拾取工件吗?

谢谢:)

2 个答案:

答案 0 :(得分:0)

听起来您的父母结构已经破坏,如果EAR依赖于WAR,那么它应该是一个子模块。

答案 1 :(得分:0)

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