Pourquoi modelVersion de pom.xml est-il nécessaire et toujours défini sur 4.0.0?

94

J'ai remarqué que Maven <modelVersion></modelVersion>de pom.xml est toujours réglé sur 4.0.0.

Pouvez-vous s'il vous plaît m'aider à comprendre quelle est l'importance de cette balise et pourquoi elle doit être définie sur 4.0.0?

mahesh
la source
Bienvenue dans stackoverflow. Vous devriez lire ceci: stackoverflow.com/questions/how-to-ask - Aussi, pourriez-vous être un peu plus précis?
Zeveso
8
désolé, mais Wlll l'a bien compris. merci pour votre aide
mahesh

Réponses:

86

Il est toujours défini sur 4.0.0 dans Maven 2 et 3, car, à l'heure actuelle, il n'y a pas d'autre modèle.

Notez que modelVersioncontient 4.0.0. Il s'agit actuellement de la seule version POM prise en charge, et elle est toujours requise. [ source ]

Mais il ne serait pas nécessairement nécessaire de toujours le définir sur 4.0.0 s'il existait une autre version du modèle. Un POM doit se conformer à un modèle. Disons que Maven 4 propose le modèle 4.1. Si vous écrivez votre pom pour se conformer à 4.1, il ne serait pas compatible avec Maven 3 et le modèle 4.0.0.

Il est défini comme obligatoire, éventuellement pour appliquer un modèle XML spécifique au cas où de nouveaux modèles seraient définis.

Boj
la source
LOL mon application était sur la version 4 et j'ai eu une erreur lors de la mise à jour de la version 5!
Chloe
8

La version du modèle est la version du descripteur de projet à laquelle votre POM se conforme. Il doit être inclus et est défini. La valeur 4.0.0 vient d'indiquer qu'il est compatible Maven 3.

Toumi
la source
2

modelVersion - contenant la version modèle du POM. Maven 1.x a utilisé un modèle contenant un élément 3.0.0 en tant qu'enfant immédiat de la racine. Maven 2.x / 3.x a utilisé un élément 4.0.0.

version - contenant la version du projet. Si cet attribut est manquant, l'élément parent doit être présent et la version sera héritée du projet parent.

Nilotpal
la source