Я заметил, что Maven <modelVersion></modelVersion>
для pom.xml всегда установлен на 4.0.0.
Не могли бы вы помочь мне понять, насколько важен этот тег и почему он должен быть установлен на 4.0.0?
Я заметил, что Maven <modelVersion></modelVersion>
для pom.xml всегда установлен на 4.0.0.
Не могли бы вы помочь мне понять, насколько важен этот тег и почему он должен быть установлен на 4.0.0?
Ответы:
В 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 в случае определения новых моделей.
Правильный ответ должен быть комбинацией ответов @Toumi и @Boj. Также посмотрите https://cwiki.apache.org/confluence/display/MAVEN/POM+Model+Version+5.0.0, чтобы узнать больше об этом.
modelVersion - содержит версию модели POM. Maven 1.x использовал модель, которая содержала элемент 3.0.0 в качестве непосредственного дочернего элемента корня. Maven 2.x / 3.x использовал элемент 4.0.0.
version - содержит версию проекта. Если этот атрибут отсутствует, то должен присутствовать родительский элемент, и версия будет унаследована от родительского проекта.
Здесь есть предложение по выпуску версии 5.0 на 2020 год:
https://cwiki.apache.org/confluence/display/MAVEN/POM+Model+Version+5.0.0