Wyobrażam sobie, że powinna istnieć nieodłączna relacja między tymi gałęziami, która powinna rozwiązać problem numerów wersji.
Zwalnianie
Wyobrażam sobie, że możesz zrobić coś takiego jak scalenie gotowego do produkcji kodu z gałęzi deweloperskiej do gałęzi wydania, a następnie wykonać wydanie Maven (przez Jenkins lub ręcznie). To automatycznie rzutuje numery wersji do następnej kompilacji. Więc scalasz kod 1.4.7-SNAPSHOT z tą gałęzią, wykonujesz wydanie i wycinamy wersję 1.4.7, a Maven automatycznie zwinie kopię roboczą do 1.4.8-SNAPSHOT.
Aktualizacja linii bazowej (opcjonalnie)
Jeśli nie używasz już swojego pnia (lub gałęzi linii bazowej itp.) Jako miejsca dla swoich wydań, powinieneś aktualizować pień zaraz po zakończeniu wydania. Oznacza to, że numery wersji również się aktualizują. Ten krok może być dyskusyjny, jeśli weźmiesz pod uwagę gałąź wydania jako linię bazową.
Łączenie z linii bazowej do gałęzi deweloperów
Ważne jest, aby Twoja gałąź programistyczna była na bieżąco z aktualnym kodem produkcyjnym. Musisz scalić kod od linii podstawowej (lub gałęzi wydania, w zależności od implementacji) do gałęzi programistycznej. Jest to ważne w twoim przypadku, ponieważ oznacza to, że zmiany pom, które wystąpiły podczas procesu wydania, które zmieniły wersję na 1.4.8-SNAPSHOT, są wprowadzane do tej gałęzi.
Na podstawie przeczytanych przeze mnie (a także procesów w mojej organizacji), wydaje się, że jest to dość standardowe i skuteczne wykorzystanie wydań i migawek Maven, a zamiast utrzymywania całkowicie odłączonych numerów wersji w różnych gałęziach, łatwo jest powiedzieć że jakakolwiek kompilacja 1.4.7-SNAPSHOT była w rzeczywistości bezpośrednim poprzednikiem wersji 1.4.7. Są spokrewnieni. Chciałbym powiedzieć, że jeśli nie łączysz się tam i z powrotem między tymi gałęziami, źle robisz zarówno wersje SCM, jak i Maven, i narażasz się na tworzenie kodu niezgodnego z produkcją , ponownie wprowadza błędy w produkcji itp.