Percebi que o Maven <modelVersion></modelVersion>de pom.xml está sempre definido como 4.0.0.
Você pode me ajudar a entender qual é a importância dessa tag e por que ela deve ser definida como 4.0.0?
Percebi que o Maven <modelVersion></modelVersion>de pom.xml está sempre definido como 4.0.0.
Você pode me ajudar a entender qual é a importância dessa tag e por que ela deve ser definida como 4.0.0?
Respostas:
É sempre definido como 4.0.0 no Maven 2 e 3, porque, no momento, não existe outro modelo.
Observe que
modelVersioncontém 4.0.0. Essa é a única versão do POM com suporte e sempre é necessária. [ fonte ]
Mas não precisaria necessariamente ser sempre definido como 4.0.0 se houvesse outra versão do modelo. Um POM deve obedecer a um modelo. Digamos que o Maven 4 venha com o modelo 4.1. Se você escrever seu pom em conformidade com 4.1, ele não seria compatível com Maven 3 e modelo 4.0.0.
É definido como obrigatório, possivelmente para impor um modelo XML específico no caso de novos modelos serem definidos.
A resposta correta deve ser a combinação das respostas de @Toumi e @Boj. Também dê uma olhada em https://cwiki.apache.org/confluence/display/MAVEN/POM+Model+Version+5.0.0 para mais informações sobre isso.
modelVersion - contendo a versão do modelo do POM. O Maven 1.x usou um modelo que continha um elemento 3.0.0 como filho imediato da raiz. O Maven 2.x / 3.x usou um elemento 4.0.0.
versão - contendo a versão do projeto. Se este atributo estiver ausente, o elemento pai deve estar presente e a versão será herdada do projeto pai.