Perché modelVersion di pom.xml è necessario e sempre impostato su 4.0.0?


94

Ho notato che Maven <modelVersion></modelVersion>di pom.xml è sempre impostato su 4.0.0.

Potete aiutarmi a capire qual è l'importanza di questo tag e perché dovrebbe essere impostato su 4.0.0?


Benvenuto in stackoverflow. Dovresti leggere questo: stackoverflow.com/questions/how-to-ask - Inoltre, potresti essere un po 'più specifico?
Zeveso

8
mi dispiace, ma lo capisco bene. grazie per il vostro aiuto
mahesh

Risposte:


86

È sempre impostato su 4.0.0 in Maven 2 e 3, perché, al momento, non esiste un altro modello.

Notare che modelVersioncontiene 4.0.0. Questa è attualmente l'unica versione POM supportata ed è sempre richiesta. [ fonte ]

Ma non sarebbe necessariamente necessario impostarlo sempre su 4.0.0 se fosse disponibile un'altra versione del modello. Un POM deve essere conforme a un modello. Diciamo che Maven 4 presenta il modello 4.1. Se scrivi il tuo pom in conformità con 4.1, non sarebbe compatibile con Maven 3 e il modello 4.0.0.

È definito come obbligatorio, possibilmente per applicare un modello XML specifico nel caso in cui siano definiti nuovi modelli.


LOL la mia app era sulla versione 4 e ho ricevuto un errore durante l'aggiornamento della versione a 5!
Chloe

8

versione modello è la versione del descrittore di progetto a cui è conforme il POM. Deve essere incluso ed è impostato. Il valore 4.0.0 indicava appena che è compatibile Maven 3.



2

modelVersion - contenente la versione del modello del POM. Maven 1.x ha utilizzato un modello che conteneva un elemento 3.0.0 come figlio immediato della radice. Maven 2.x / 3.x ha utilizzato un elemento 4.0.0.

versione - contenente la versione del progetto. Se questo attributo manca, l'elemento padre deve essere presente e la versione verrà ereditata dal progetto padre.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.