为什么需要pom.xml的modelVersion并始终设置为4.0.0?

时间:2013-11-03 23:09:00

标签: maven

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

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

5 个答案:

答案 0 :(得分:62)

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

  

请注意,modelVersion包含4.0.0。这是目前唯一支持Maven 2的POM版本,并且始终是必需的

但如果有另一个版本的模型,则不一定需要始终设置为4.0.0。 POM必须符合模型。让我们说Maven 4提出4.1模型。如果您编写pom以符合4.1,它将与Maven 3和4.0.0版本不兼容。

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

答案 1 :(得分:4)

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

答案 2 :(得分:2)

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

答案 3 :(得分:1)

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

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

答案 4 :(得分:0)