我注意到Maven的<modelVersion></modelVersion>
pom.xml始终设置为4.0.0。
您能否帮我理解这个标签的重要性以及为什么要设置为4.0.0?
答案 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)
这里有关于2020年版本5.0的建议:
https://cwiki.apache.org/confluence/display/MAVEN/POM+Model+Version+5.0.0