【问题标题】:Maven inherited attributes from parent POMMaven从父POM继承属性
【发布时间】:2012-12-22 18:35:56
【问题描述】:

我正在尝试查找从父 POM 继承的元素的权威列表。基于this page

当您继承 POM 时,您可以选择使用继承的 POM 信息或选择性地覆盖它。以下是 Maven POM 从其父 POM 继承的项目列表:

  • 标识符(必须覆盖 groupId 或 artifactId 中的至少一个。)
  • 依赖关系
  • 开发者和贡献者
  • 插件列表
  • 报告列表
  • 插件执行(具有匹配 id 的执行被合并)
  • 插件配置

但是当我在我的一个项目中看到有效的 POM 时,我看到它也继承了 inceptionYeardescription(这是一个问题,这应该是对包含它的 POM 的描述,而不是它的子项的描述。所有孩子都有像“所有 POM 的根”这样的描述有​​什么意义)

那么是否有一个实际的列表,或者它只是继承父 pom 的所有内容?我在工件的清单中使用了其中一些属性,所以我想添加有意义的值

【问题讨论】:

    标签: maven inheritance maven-3


    【解决方案1】:

    子 pom 继承父 pom 的所有内容。如果您需要在子 pom 中设置有意义的值,则需要覆盖父 pom 中的值。

    来自文档:

    当一个项目指定一个父项目时,Maven 使用那个父 POM 作为读取当前项目的 POM 之前的起点。它 继承所有内容,包括 groupId 和版本号。

    【讨论】:

    【解决方案2】:

    来自父 POM 的大多数元素都是 inherited 的子元素。两个不被继承的元素是 artifactId 和 name。 (另外,任何显式设置<inherited>false 的插件)

    【讨论】:

    • 然而 - 尽管 IntelliJ 和 Eclipse 上的 Maven 插件强制你提供 groupidartifactidversion - POM 的实际 XML 模式对于每个元素都有 minOccurs=0。 . . maven.apache.org/xsd/maven-4.0.0.xsd
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-17
    • 2017-02-22
    • 2013-09-28
    • 2012-03-31
    • 1970-01-01
    • 2011-11-26
    • 1970-01-01
    相关资源
    最近更新 更多