Ich habe bemerkt, dass Maven <modelVersion></modelVersion>
von pom.xml immer auf 4.0.0 eingestellt ist.
Können Sie mir bitte helfen zu verstehen, welche Bedeutung dieses Tag hat und warum es auf 4.0.0 gesetzt werden sollte?
Ich habe bemerkt, dass Maven <modelVersion></modelVersion>
von pom.xml immer auf 4.0.0 eingestellt ist.
Können Sie mir bitte helfen zu verstehen, welche Bedeutung dieses Tag hat und warum es auf 4.0.0 gesetzt werden sollte?
Antworten:
In Maven 2 und 3 ist es immer auf 4.0.0 eingestellt, da es derzeit kein anderes Modell gibt.
Beachten Sie, dass
modelVersion
4.0.0 enthält. Dies ist derzeit die einzige unterstützte POM-Version und wird immer benötigt. [ Quelle ]
Aber es würde nicht unbedingt brauchen , um immer auf 4.0.0 gesetzt werden , wenn es eine andere Version des Modells ist. Ein POM muss einem Modell entsprechen. Nehmen wir an, Maven 4 wartet mit Modell 4.1 auf. Wenn Sie Ihren POM so schreiben, dass er 4.1 entspricht, ist er nicht mit Maven 3 und Modell 4.0.0 kompatibel.
Es ist als obligatorisch definiert, möglicherweise um ein bestimmtes XML-Modell durchzusetzen, falls neue Modelle definiert werden.
Die richtige Antwort sollte die Kombination der Antworten von @Toumi und @Boj sein. Auch einen Blick auf https://cwiki.apache.org/confluence/display/MAVEN/POM+Model+Version+5.0.0 für mehr Hintergrund dieser.
modelVersion - enthält die Modellversion des POM. Maven 1.x verwendete ein Modell, das ein 3.0.0-Element als unmittelbares untergeordnetes Element der Wurzel enthielt. Maven 2.x / 3.x hat ein 4.0.0-Element verwendet.
version - enthält die Version des Projekts. Wenn dieses Attribut fehlt, muss das übergeordnete Element vorhanden sein und die Version wird vom übergeordneten Projekt geerbt.