Dlaczego modelVersion pom.xml jest konieczny i zawsze ustawiony na 4.0.0?


95

Zauważyłem, że Maven's <modelVersion></modelVersion>z pom.xml jest zawsze ustawiony na 4.0.0.

Czy możesz mi pomóc zrozumieć, jakie jest znaczenie tego tagu i dlaczego powinien być ustawiony na 4.0.0?


Witamy w stackoverflow. Powinieneś przeczytać to: stackoverflow.com/questions/how-to-ask - Czy mógłbyś być bardziej szczegółowy?
Zeveso

8
przepraszam, ale Wlll dobrze to zrozumiał. dzięki za pomoc
mahesh

Odpowiedzi:


89

Jest zawsze ustawiony na 4.0.0 w Maven 2 i 3, ponieważ obecnie nie ma innego modelu.

Zauważ, że modelVersionzawiera 4.0.0. Jest to obecnie jedyna obsługiwana wersja POM i jest zawsze wymagana. [ źródło ]

Ale niekoniecznie musi być zawsze ustawione na 4.0.0, gdyby istniała inna wersja modelu. POM musi być zgodny z modelem. Powiedzmy, że Maven 4 ma model 4.1. Jeśli napiszesz pom, aby był zgodny z 4.1, nie byłby kompatybilny z Maven 3 i modelem 4.0.0.

Jest zdefiniowany jako obowiązkowy, prawdopodobnie w celu wymuszenia określonego modelu XML w przypadku definiowania nowych modeli.


LOL, moja aplikacja była w wersji 4 i podczas aktualizacji wersji do 5 wystąpił błąd!
Chloe,

8

Wersja modelu to wersja deskryptora projektu, z którą jest zgodny twój POM. Musi być dołączony i jest ustawiony. Wartość 4.0.0 właśnie wskazywała, że ​​jest zgodna z Maven 3.



2

modelVersion - zawiera modelową wersję pliku POM. Maven 1.x użył modelu, który zawierał element 3.0.0 jako bezpośredniego potomka katalogu głównego. Maven 2.x / 3.x użył elementu 4.0.0.

wersja - zawiera wersję projektu. Jeśli brakuje tego atrybutu, musi istnieć element nadrzędny, a wersja zostanie odziedziczona z projektu nadrzędnego.


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.