Я помітив, що для Maven's <modelVersion></modelVersion>
pom.xml завжди встановлено значення 4.0.0.
Чи можете ви допомогти мені зрозуміти, у чому важливість цього тегу і чому для нього слід встановити значення 4.0.0?
Я помітив, що для Maven's <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.
версія - містить версію проекту. Якщо цей атрибут відсутній, тоді повинен бути присутній батьківський елемент, і версія буде успадкована від батьківського проекту.