Mój projekt składa się z 5 podprojektów. Jedna to Wojna, a pozostałe 4 to słoiki. Zasadniczo projekt wojenny wymaga wszystkich 4 projektów słoików i ich zależności.Jak radzić sobie z zależnościami sub projektów w Maven
Mogę rozebrać zależności, aby mieć coś takiego jak wojna-> A-> B-> C-> D. Każdy podprojekt dodaje swój udział w zewnętrznych zależnościach (wiosna, rozpórki, hibernacja), aby w końcu wojna dostała wszystko, co potrzebne do uruchomienia.
To wygląda całkiem dobrze zorganizowane i kwadratowe, ale zadaję sobie pytanie, czy jest to bardzo praktyczne, aby wprowadzić zmiany.
Wyobraź sobie, że muszę zmienić jeden wiersz kodu w projekcie D, nie zmieniając niczego w zależnościach Mavena. Musiałbym oczywiście ponownie wydać projekt D, ale muszę ponownie opublikować projekty C, B, A i wojnę, aby odzwierciedlić tę zmianę w swoich plikach pom. Może to być długie i denerwujące, zwłaszcza jeśli musisz szybko wydać nową wersję, aby naprawić coś w produkcji.
Mogę sprawić, że wojna będzie zależała od wszystkich 4 projektów, więc muszę zmienić numer wersji projektu D w pliku wojny wojennej. Ale potem mam projekt A pośrednio zależny od projektu D 1.0 i wojny określającej projekt D 1.1. Sądzę, że zależność od wojny bezpośredniej wygrałaby w takim razie, nieprawdaż?
To spowodowałoby, że nowa wersja wojenna zostanie wydana szybciej, ale zepsułaby również zależności między projektami podrzędnymi, ponieważ byłyby one nieaktualne.
Jaki byłby dopuszczalny sposób poradzenia sobie z taką sytuacją?
cześć Gweebz. Dziękuję za szczegółową odpowiedź. Nie muszę oddzielnie publikować każdego projektu podrzędnego, więc dobrze przyjrzę się tej koncepcji agregatora, o której nie wiedziałem. Moduły zawierają cały kod biznesowy i danych i są zobowiązane do regularnej zmiany. Innym rozwiązaniem byłoby wykluczyć zależności tranzytowe, jak powiedziałeś, nie myślałem o tym. Dzięki za światło w tej sprawie. – IceGras
Bez wymogu niezależnego wydawania każdego modułu, zdecydowanie sugeruję użycie rozwiązania Aggregator. Jego wzór idealnie pasuje do Twojego scenariusza. Cieszę się, że mogłem pomóc :) –