1

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

我的项目应用程序

  • 我的项目罐子
  • 我的项目战争

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

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

4

1 回答 1

6

这不是多余的。他们都做不同的事情。

如果你使用聚合(定义<modules>),你只是说必须构建哪些项目,它的包类型是pom.

如果您继承(定义<parent>),您将继承父 pom 的首选项。

看:

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

更多信息在这里

于 2012-12-20T20:15:56.313 回答