Почему modelVersion pom.xml необходим и всегда установлен на 4.0.0?


95

Я заметил, что Maven <modelVersion></modelVersion>для pom.xml всегда установлен на 4.0.0.

Не могли бы вы помочь мне понять, насколько важен этот тег и почему он должен быть установлен на 4.0.0?


Добро пожаловать в stackoverflow. Вам следует прочитать это: stackoverflow.com/questions/how-to-ask - Кроме того, не могли бы вы быть более конкретными?
Zeveso 03

8
извините, но Я прекрасно это понял. спасибо за вашу помощь
mahesh 04

Ответы:


89

В Maven 2 и 3 он всегда установлен на 4.0.0, потому что в настоящее время другой модели нет.

Обратите внимание, что modelVersionсодержит 4.0.0. В настоящее время это единственная поддерживаемая версия POM, и она требуется всегда. [ источник ]

Но это не обязательно будет нужно всегда быть установлен в 4.0.0 , если есть еще одна версия модели. POM должен соответствовать модели. Допустим, Maven 4 предлагает модель 4.1. Если вы напишете свой pom в соответствии с 4.1, он не будет совместим с Maven 3 и моделью 4.0.0.

Он определен как обязательный, возможно, для обеспечения соблюдения конкретной модели XML в случае определения новых моделей.


LOL, мое приложение было на версии 4, и я получил ошибку при обновлении версии до 5!
Хлоя

8

версия модели - это версия дескриптора проекта, которой соответствует ваш POM. Его нужно включить и установить. Значение 4.0.0 просто указывает, что он совместим с Maven 3.



2

modelVersion - содержит версию модели POM. Maven 1.x использовал модель, которая содержала элемент 3.0.0 в качестве непосредственного дочернего элемента корня. Maven 2.x / 3.x использовал элемент 4.0.0.

version - содержит версию проекта. Если этот атрибут отсутствует, то должен присутствовать родительский элемент, и версия будет унаследована от родительского проекта.


Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.