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?
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?
Odpowiedzi:
Jest zawsze ustawiony na 4.0.0 w Maven 2 i 3, ponieważ obecnie nie ma innego modelu.
Zauważ, że
modelVersion
zawiera 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.
Prawidłowa odpowiedź powinna być połączeniem odpowiedzi @Toumi i @Boj. Zajrzyj również na https://cwiki.apache.org/confluence/display/MAVEN/POM+Model+Version+5.0.0, aby uzyskać więcej informacji na ten temat.
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.
Tutaj jest propozycja wersji 5.0 na 2020:
https://cwiki.apache.org/confluence/display/MAVEN/POM+Model+Version+5.0.0