Maven subprojekty w Intelij

0

Cześć, mam obecnie 1 moduł restowy. Chciałbym podzielić go na submoduly, aby oddzielić warstwę webu od logiki biznesowej oraz warstwy persystencji. Czy to ogólnie dobry podział:

  • warstwa webu zawierająca jedynie rest controllery
  • warstwa logiki zawierająca serwisy oraz daosy
  • warstwa perstystencji zawierająca rozszerzenia JpaRespository oraz encje ?

W jaki sposób z obecnego jednego modułu wydzielić 3 podmoduły ?

1

Moim zdaniem taki podział tzn. tworzenie warstw w różnych modułach kierując się sztuczną warstwą techniczną to jest generalnie anty-pattern i powinno się tego unikąć (mimo, że był polecany we wielu miejscach szczególnie w świecie .NET i Java). Komplikuje to projekt i myślę, że niewiele daje w zamian. Pozostaje pytanie w jaki sposób dzielić projekt na moduły? Jeżeli coś ma sens deployować oddzielnie / testować integracyjnie to jest sens tworzyć dla tego oddzielny moduł (np. archiwum war). Jeżeli nie ma sensu / takiej potrzeby to pozostałbym przy jak najprostszej strukturze czyli jeden ear / war / fat-jar. Im prostsza struktura projektu tym lepiej.

Jak dla mnie Twój test integracyjny powinien obejmować:

  • REST API
  • logikę biznesową
  • bezę danych

Czyli wszystko powinno być w 1 module.

0

jeśli dobrze rozumiem, z tego co napisałeś, to chcesz mieć 2 osobne warstwy, na persistance i logikę? Tylko jaki jest sens, skoro te dwie warstwy cały czas współpracują ze sobą? Rozumiem, że web to inna sprawa, bo to może być napisane w dowolnym języku. Przypuszczam, że wystawiasz rest-api, ale w takim razie nie wiem czemu chcesz oddzielać na osobne moduły to co się dzieje na backendzie? To jakaś duża aplikacja? Pytam, bo za bardzo nie umiem sobie tego wyobrazić

0

Ok moze to nie ma uzasadnienia logicznego, ale po prostu widzialem takie rozwiazanie w kilku miejscach i chcialem tak zrobic w celu przetrenowania mavena ; ).
Po prostu chodzi o to, że mam jakiś moduł rest i chciałbym to przerobić tak, aby był on submodułem, dołożyc inne submoduły i je połączyć. Ktoś jakieś rady ? Czy muszę od początku tworzyć ?

0

Jak chcesz zobaczyć jak się konfiguruje wielomodułowe projekty w Maven to warto rzucić okiem na istniejący projekt np. Spring Cloud Sleuth, pobrać i otworzyć sobie w IDE:
https://github.com/spring-cloud/spring-cloud-sleuth

Zwróć uwagę na:

  1. opis modułów na pom.xml (katalog główny)
  2. dodatkowy projekt na zarządzanie zależnościami (dependencies)
    3 . właściwe subprojekty (mogą też zawierać moduły)

Na tym projekcie wzorowałem się budując wielomodułowy maven projekt. Resztę znajdziesz w dokumentacji.

Można poczytać też jak pakowane są w EAR złożone projekty dla JEE. I dokumentację Mavena (np. dwie aplikacje web, jedna ejb w 1 EAR). Jak pisałem nie polecam dzielić aplikacji na warstwy techniczne, z projektu szybko robi się wtedy straszne badziewie.

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