Mam wielomodułowy projekt Maven i chciałbym zaktualizować wersje rozwojowe do określonej wartości za pomocą skryptu. Agregator POM jest tylko agregatorem, a dzieci nie dziedziczą z niego. Jest to ważne, ponieważ artefakty wszystkie dziedziczą z innych plików POM. Oto moja konstrukcjaAktualizowanie wersji w wielomodułowym projekcie Maven
aggregator/
--projectA
--projectB
Również projectB
ma zależność Maven na projectA
.
Najpierw próbowałem:
mvn -DnewVersion=0.28-SNAPSHOT -DupdateMatchingVersions=true versions:set
To tylko uaktualniona wersja projektu aggregator
.
Jeśli uruchamiam proces uwalniania Maven, poprawnie aktualizuje on zależność projectB
od projectA
, aby użyć nowej wersji rozwojowej po wydaniu kompilacji. Ponieważ proces wydawania obsługuje to dobrze, pomyślałem, że użycie wtyczki wydania może rozwiązać mój problem.
Tak próbowałem następujące:
mvn -DdevelopmentVersion=0.28-SNAPSHOT -DautoVersionSubmodules=true --batch-mode release:update-versions
Ta zaktualizowana wszystkich moich podprojektów poprawnie. Jednak nie zaktualizowano wersji zależnej projectB
dla projectA
.
Jaki jest prosty sposób aktualizacji wszystkich wersji rozwojowych w moim projekcie, w tym projectB
zależność od projectA
?
Dzięki za informację o wersjach: zestaw. To wyjaśnia lepiej zachowanie. –
Być może zmieniono domyślne ustawienie 'updateMatchingVersions'? W mvn 3.2.5 domyślnie jest to "prawda", a ja chciałem odwrotnie. 'wersje mvn: set' zmienił więcej wersji niż chciałem. Podrapałem się o to, aż znalazłem odpowiedź! –