¿Por qué modelVersion de pom.xml es necesaria y siempre se establece en 4.0.0?

94

He notado que Maven's <modelVersion></modelVersion>of pom.xml siempre está configurado en 4.0.0.

¿Puede ayudarme a comprender cuál es la importancia de esta etiqueta y por qué debería establecerse en 4.0.0?

mahesh
fuente
Bienvenido a stackoverflow. Deberías leer esto: stackoverflow.com/questions/how-to-ask - Además, ¿podrías ser un poco más específico?
Zeveso
8
lo siento, pero Wlll lo entendió muy bien. gracias por su ayuda
mahesh

Respuestas:

86

Siempre se establece en 4.0.0 en Maven 2 y 3, porque, en la actualidad, no hay otro modelo.

Tenga en cuenta que modelVersioncontiene 4.0.0. Esa es actualmente la única versión de POM compatible y siempre es necesaria. [ fuente ]

Pero no necesariamente tendría que establecerse siempre en 4.0.0 si hubiera otra versión del modelo. Un POM tiene que cumplir con un modelo. Digamos que Maven 4 viene con el modelo 4.1. Si escribe su pom para cumplir con 4.1, no sería compatible con Maven 3 y el modelo 4.0.0.

Se define como obligatorio, posiblemente para hacer cumplir un modelo XML específico en caso de que se definan nuevos modelos.

Boj
fuente
¡LOL, mi aplicación estaba en la versión 4 y recibí un error al actualizar la versión a 5!
Chloe
8

La versión del modelo es la versión del descriptor de proyecto a la que se ajusta su POM. Debe incluirse y está configurado. El valor 4.0.0 acaba de indicar que es compatible con Maven 3.

Toumi
fuente
2

modelVersion : contiene la versión del modelo del POM. Maven 1.x usó un modelo que contenía un elemento 3.0.0 como hijo inmediato de la raíz. Maven 2.x / 3.x ha utilizado un elemento 4.0.0.

versión : contiene la versión del proyecto. Si falta este atributo, el elemento principal debe estar presente y la versión se heredará del proyecto principal.

Nilotpal
fuente