JPA - projekt wielomodułowy, wiele plików persistence.xml

0

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 plik persistance.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 pliku persistance.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. ;)

1

Moim zdaniem powinien być jeden plik persistance.xml w jednym z modułów servera nazwijmy go entrypoint
gdzie byłaby konfiguracja 2 datasource.

co jest średnie bo jak oddeleguje się pracę nad modułem 1 do kogoś innego to trzeba pamiętać o naniesieniu jego zmian w pliku persistance.xml

To ta "inna" osoba powinna nanieść zmiany.

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