Por que modelVersion de pom.xml é necessário e sempre definido como 4.0.0?


94

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?


Bem-vindo ao stackoverflow. Você deve ler isto: stackoverflow.com/questions/how-to-ask - Além disso, você poderia ser um pouco mais específico?
Zeveso

8
desculpe, mas Wlll entendeu muito bem. obrigado por sua ajuda
mahesh

Respostas:


85

É 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.


LOL meu aplicativo estava na versão 4 e recebi um erro ao atualizar a versão para 5!
Chloe

8

a versão do modelo é a versão do descritor do projeto com a qual seu POM está em conformidade. Ele precisa ser incluído e está definido. O valor 4.0.0 apenas indica que é compatível com o Maven 3.



2

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.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.