我现在有一个父pom声明了两个模块:耳朵和战争。耳朵依赖于战争(并且使用组/工件ID和包装类型声明它的依赖性)。
当从父pom级别进行打包时,反应堆会拾取两个工件,并按照您的预期将战争正确打包到耳中。然而,当从耳朵的项目pom打包时(尽管两个项目中的元素都指向父pom),耳朵找不到战争神器。
我知道,当在耳朵级别进行打包时,Maven会正确地找到它的父节点,但是它不会迭代到父节点包含的各种模块来拾取工件吗?
谢谢:)
答案 0 :(得分:0)
听起来您的父母结构已经破坏,如果EAR依赖于WAR,那么它应该是一个子模块。
答案 1 :(得分:0)
这就是Maven的工作方式。没关系。在解析依赖关系时,Maven在reactor中查找它们,然后在本地存储库中查找它们,然后是远程repos。因此,当从父项目级别进行构建时,两个项目都在反应堆中,因此EAR可以轻松选择WAR。 (具体来说,这不是因为父子关系,而是因为它们是模块。)但是,当您单独构建EAR模块时,reactor不能提供WAR以及本地repo和远程repos。如果您通过mvn install
将WAR模块安装到本地存储库中,然后尝试构建EAR,则可以使用本地存储库找到WAR工件。