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?
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?
Risposte:
È sempre impostato su 4.0.0 in Maven 2 e 3, perché, al momento, non esiste un altro modello.
Notare che
modelVersion
contiene 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.
La risposta corretta dovrebbe essere la combinazione delle risposte di @Toumi e @Boj. Dai anche un'occhiata a https://cwiki.apache.org/confluence/display/MAVEN/POM+Model+Version+5.0.0 per ulteriori informazioni su questo argomento.
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.