【问题标题】:Maven inheritance and aggregationMaven继承和聚合
【发布时间】:2012-12-08 09:28:39
【问题描述】:

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

我的项目应用程序

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

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

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

【问题讨论】:

    标签: java maven inheritance aggregation


    【解决方案1】:

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

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

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

    见:

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

    更多信息here.

    【讨论】:

      猜你喜欢
      • 2012-02-09
      • 2014-08-09
      • 1970-01-01
      • 2011-07-19
      • 2018-06-07
      • 1970-01-01
      • 2015-08-21
      • 2014-05-07
      • 2012-01-31
      相关资源
      最近更新 更多