2012-04-11 67 views
0

我目前得到了声明了两个模块,一个父POM:耳朵和战争。耳朵依赖于战争(并且通过组/工件ID和包装类型声明它的依赖性)。Maven的包装耳发现从项目级别的依赖而不是从父

当从父POM级封装,反应器拿起两个文物妥善打包战成你所期望的耳朵。然而,当从耳朵项目pom包装时(尽管在两个项目中声明的元素指向父pom)耳朵未能找到战争神器。

我知道在耳水平Maven的包装时,发现其正确的父母的方式,但它不是那么迭代到父包含回暖假象的各个模块?

谢谢:)

回答

0

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

0

听起来像是你的养育结构被破坏,如果EAR依赖于战争,那么它应该是一个子单元。

+0

这是我的初衷,但在这种情况下,不会在EAR级POM既是模块聚合和打包?我认为Maven中这是不可能的(例如,你可以有模块和有包装型POM,或者打包为一个EAR并没有模块)。就目前而言,我有WAR和EAR并排,这样EAR会引入WAR。你能推荐更好的解决方案吗? – Rhys 2012-04-11 21:02:07