2012-12-20 89 views
0

我只是好奇,如果在同一个Maven应用程序中同时使用继承和聚合会发生什么? 这是应用程序的结构:Maven继承和聚合

我的项目,应用

  • 我的项目-JAR
  • 我的项目战

现在,在应用程序的POM .xml,我将jar和war项目声明为模块,同时这两个模块中的poms声明应用程序pom为其父项。这是在这里创造一些冗余,不是吗?

这种情况的最佳解决方案是什么?

回答

4

这不是多余的。他们做了两件不同的事情。

如果你定义了<modules>(聚合),你可以说,哪些项目必须建立,它的包装类型是pom

如果您继承,您将通过定义<parent/>继承父母的首选项。

参见:

继承和聚集创造一个很好的动态控制,以通过建立一个单一的,高层次的POM。您经常会看到既是父母又有聚合者的项目。例如,整个maven核心通过一个基本的POM org.apache.maven:maven运行,因此构建Maven项目可以通过一个命令执行:mvn compile。但是,虽然聚甲醛项目,聚合项目和父项目都不是相同的,不应该混淆。 POM项目可以继承 - 但不一定有 - 它聚合的任何模块。相反,POM项目可以合并不从其继承的项目。

更多资讯here