【问题标题】:Why modelVersion of pom.xml is necessary and always set to 4.0.0?为什么 pom.xml 的 modelVersion 是必要的并且总是设置为 4.0.0?
【发布时间】:2013-11-14 13:50:32
【问题描述】:

我注意到 Maven 的 pom.xml 的 <modelVersion></modelVersion> 总是设置为 4.0.0。

能否请您帮我理解一下这个标签的重要性以及为什么要将它设置为 4.0.0?

【问题讨论】:

标签: maven


【解决方案1】:

在 Maven 2 和 3 中始终设置为 4.0.0,因为目前没有其他模型。

请注意,modelVersion 包含 4.0.0。这是当前唯一受支持的 POM 版本,并且始终是必需的。 [source]

但如果有其他版本的模型,则不一定需要始终设置为 4.0.0。 POM 必须符合模型。假设 Maven 4 提出了模型 4.1。如果你编写你的 pom 以符合 4.1,它将与 Maven 3 和模型 4.0.0 不兼容。

它被定义为强制性的,如果定义了新模型,可能会强制执行特定的 XML 模型。

【讨论】:

【解决方案2】:

modelVersion - 包含 POM 的模型版本。 Maven 1.x 使用包含 3.0.0 元素的模型作为根的直接子元素。 Maven 2.x / 3.x 使用了 4.0.0 元素。

version - 包含项目的版本。如果缺少此属性,则必须存在父元素,并且版本将从父项目继承。

【讨论】:

    【解决方案3】:

    正确答案应该是@Toumi 和@Boj 的答案的组合。另请查看https://cwiki.apache.org/confluence/display/MAVEN/POM+Model+Version+5.0.0 了解更多背景信息。

    【讨论】:

      【解决方案4】:

      模型版本是您的 POM 符合的项目描述符的版本。 它需要包含并设置。 值 4.0.0 只是表示它兼容 Maven 3。

      【讨论】:

        猜你喜欢
        • 2023-03-09
        • 2021-09-05
        • 2011-10-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-11-13
        • 1970-01-01
        相关资源
        最近更新 更多