Podział na moduły w Maven

0

Witam.

Uczę się Mavena i jest tam projekt główny i moduły. Projekt projektu głównego ma identyczną strukturę, różni się jedynie tym, że musi w pliku pom.xml musi być zdefiniowane:

<packaging>pom</packaging>

Ale jaki jest sens podziału takiego na moduły, gdzie główny projekt nic nie robi ?

Przeczytałem na necie, że przykład takiego podziału to serwer i klient np. klient który wywołuje metody za pomocą RMI, ale dlaczego to robić w ten sposób tj. dzielić na moduły ?

Proszę o wyjaśnienie tej kwestii, bo mam wątpliwości, dzięki!

0
  1. Szybsze budowanie -> jesli zmieniłeś coś tylko w jednym module to maven przebuduje tylko ten jeden moduł a resztę jarów weźmie z repo bo są aktualne. Przy dużych projektach to robi sporą różnicę.
  2. Klasyczna dekompozycja -> łatwiej ogarnąć projekt który jest ładnie podzielony. To trochę tak jakbyś pytał "po co dzielić kod na jakieś klasy skoro można wszystko wepchnąć do jednej" albo "po co dzielić kod na małe metody jak można wszystko upchnąć w jednej" ;)
  3. Niskie sprzężenie i wysoka spójność -> minimalizujesz zależności pomiędzy klasami bo są zamknięte w osobnych jarach
  4. Potencjalne ponowne użycie -> jakiś moduł ktoś potem może wykorzystać jako "bibliotekę" i go sobie włączyć do projektu. Nie będzie musial wpychać tam całego twojego wielkiego projektu tylko ten mały kawałek.
0
  1. uwspólnienie części konfiguracji w projekcie głównym - nie musisz dwadzieścia razy konfigurować np. zależności do testów czy profili
  2. lepsze zarządzanie po stronie serwera CI - można budować fragmenty
  3. możliwość wydzielenia modułów testowych - przy długich testach integracyjnych bezcenne.
  4. łatwiejsze zarządzanie w systemach kontroli wersji.

Generalnie wszytko to co masz w przypadku podziału na mniejsze elementy.

1 użytkowników online, w tym zalogowanych: 0, gości: 1