我注意到Maven的pom.xml的<modelVersion></modelVersion>总是设置为4.0.0。你能帮助我理解这个标签的重要性吗?为什么它应该设置为4.0.0?
pom.xml
<modelVersion></modelVersion>
4.0.0
zazmityj1#
它始终设置为4。在Maven 2和3中是0.0,因为目前没有其他模型。注意modelVersion包含4。0.0。这是当前唯一受支持的POM版本,并且始终是必需的。[来源]但它不一定 * 需要 * 总是设置为4。0.0如果有另一个版本的模型。POM必须符合模型。假设Maven 4推出了Model 4。1.如果你写你的pom符合4.1,它不会与Maven 3和Model 4兼容。0.0.它被定义为强制性的,可能是为了在定义新模型的情况下强制执行特定的XML模型。
modelVersion
moiiocjp2#
模型版本是您的POM符合的项目描述符的版本。它需要被包含并被设置。值4。0.0只是表明它兼容Maven 3。
b1zrtrql3#
正确答案应该是@Toumi和@Boj的答案的组合。也可以看看https://cwiki.apache.org/confluence/display/MAVEN/POM+Model+Version+5.0.0了解更多的背景。
jjjwad0x4#
modelVersion-包含POM的模型版本。Maven 1.x使用了一个包含3.0.0元素作为根的直接子级。Maven 2.x / 3.x使用了4。0.0元素。version-包含项目的版本。如果缺少此属性,则父元素必须存在,并且版本将从父项目继承。
4条答案
按热度按时间zazmityj1#
它始终设置为4。在Maven 2和3中是0.0,因为目前没有其他模型。
注意
modelVersion
包含4。0.0。这是当前唯一受支持的POM版本,并且始终是必需的。[来源]但它不一定 * 需要 * 总是设置为4。0.0如果有另一个版本的模型。POM必须符合模型。假设Maven 4推出了Model 4。1.如果你写你的pom符合4.1,它不会与Maven 3和Model 4兼容。0.0.
它被定义为强制性的,可能是为了在定义新模型的情况下强制执行特定的XML模型。
moiiocjp2#
模型版本是您的POM符合的项目描述符的版本。它需要被包含并被设置。值4。0.0只是表明它兼容Maven 3。
b1zrtrql3#
正确答案应该是@Toumi和@Boj的答案的组合。也可以看看https://cwiki.apache.org/confluence/display/MAVEN/POM+Model+Version+5.0.0了解更多的背景。
jjjwad0x4#
modelVersion-包含POM的模型版本。Maven 1.x使用了一个包含3.0.0元素作为根的直接子级。Maven 2.x / 3.x使用了4。0.0元素。
version-包含项目的版本。如果缺少此属性,则父元素必须存在,并且版本将从父项目继承。