Почему 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 в случае определения новых моделей.

Boj
источник
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 - содержит версию проекта. Если этот атрибут отсутствует, то должен присутствовать родительский элемент, и версия будет унаследована от родительского проекта.

Нилотпал
источник