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?

mahesh
fonte
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.

Boj
fonte
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.

Toumi
fonte
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.

Nilotpal
fonte