Hej,
Ponownie piszę post na forum mając nadzieje że tym razem, jak i poprzednimi, otrzymam od was świeże spojrzenie na mój problem ;) tak więc jedziemy z koksem:
Mam projekt mavenowy aplikacji serwerowej która składa się z modułów które są w postaci oddzielnych jarów/artefaktów które są dołączane jako zależność do aplikacji serwerowej.
Struktura wygląda tak
server (jar)
|-- modul 1 (jar)
|-- modul 2 (jar)
....
|-- modul n (jar)
Mam sytuację w której modul 1
i modul 2
mają swoje oddzielne połączenie do dwóch różnych baz. Oba moduły mają swoje encje i pliki konfiguracyjne persistance.xml
. Problem pojawia się gdy zbieram wszystko w całość a w wynikowym jarze serwera jest plik persistance.xml
był jakby randomowo wybrany z którejś zależności (albo ten z modułu 1
albo modułu 2
). Mam następujące propozycję rozwiązania problemu:
- wywalić
persistance.xml
z modułów i utworzyć jeden plikpersistance.xml
na wszystko w projekcie serwera co jest średnie bo jak oddeleguje się pracę nad modułem 1 do kogoś innego to trzeba pamiętać o naniesieniu jego zmian w plikupersistance.xml
w projekcie serwera - sklejać jakimś skryptem
persistance.xml
z modułów i wrzucać go do projektu serwera przed startem budowania, jakiś groovy albo Python. - znaleźć rozwiązanie w obszarze Mavena, jakiś plugin albo coś w tym guście.
Zaznaczę że nie chce sytuacji gdzie moduły będą deployowane oddzielnie a serwer będzie gadał z modułami po HTTP jakimś REST. Celuje w coś w stylu: zmodularyzowanego monolitu. I w tym miejscu kieruje do Was pytanie: Czy spotkaliście się z takim problemem? Jeżeli tak to jakie były rozwiązania tego problemu które nie przyprawiały o ból zębów na utrzymaniu?
Projekt jest bardzo JVM-only-orientend, czyli żadnych Springów, żadnego EJB. Kilka bibliotek (javaspark, eclipselink, guava) i sam maven.
Za wszelkie sugestię i odpowiedzi będę niezmiernie wdzięczny. ;)