Maven继承和聚合

时间:2012-12-20 19:41:55

标签: java maven inheritance aggregation

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

  

我的项目,应用程序

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

现在,在app的pom.xml中,我将jar和war项目声明为模块,同时两个模块中的poms将app pom声明为其父级。它在这里创造了某种冗余,不是吗?

此案例的最佳解决方案是什么?

1 个答案:

答案 0 :(得分:5)

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

如果您定义<modules>(聚合),您只需说明哪些项目必须构建且其包类型为pom

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

见:

  

继承和聚合通过单个高级POM创建一个很好的动态来控制构建。您经常会看到父项和聚合器都是项目。例如,整个maven核心运行单个基础POM org.apache.maven:maven,因此构建Maven项目可以通过单个命令执行:mvn compile。但是,虽然POM项目,聚合器项目和父项目都不是同一个项目,但不应混淆。 POM项目可以从 - 但不一定 - 继承 - 它聚合的任何模块。相反,POM项目可能会聚合不从中继承的项目。

更多信息here