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

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

你能帮我理解这个标签的重要性,为什么它应该被设置为4.0.0?

在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模型。

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

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