Mam prosty projekt java maven. Jedna z moich klas podczas wykonywania musi załadować plik konfiguracyjny xml ze ścieżki klasy. Nie chcę pakować takiego pliku xml podczas tworzenia słoika, ale chcę dołączyć domyślny plik xml w zespole zip pod podfolderem conf, a także chcę, aby ten domyślny xml był dostępny w testach jednostkowych, aby go przetestować.Gdzie w ścieżce projektu maven powinienem umieścić pliki konfiguracyjne, które nie są uważane za zasoby
Jak widzę to są 2 możliwe miejsca domyślnej XML:
src/main/resources/conf/default.xml
src/main/conf/default.xml
żądać Oba rozwiązania specjalne działania pom:
W rozwiązanie 1, otrzymuję kopię automatyczną do folderu docelowego podczas b uild, co oznacza, że jest dostępny w testach, ale też dostaję go w wyprodukowanym słoiku, którego nie chcę.
W rozwiązaniu 2 otrzymuję słoik tak, jak chcę (bez xml), ale muszę ręcznie skopiować xml do folderu docelowego, aby był dostępny do testowania. (Nie chcę dodawać podfolderów src w ścieżce klasy testowej. Myślę, że jest to zła praktyka).
Pytanie: jakie jest najlepsze rozwiązanie obu?
- Jeśli poprawne jest 2, jaki jest najlepszy sposób na skopiowanie go do folderu docelowego?
- Czy istnieje inne rozwiązanie lepsze i bardziej powszechne niż te dwa?
(Czytałem również Where should I put application configuration files for a Maven project?, ale chciałbym poznać najbardziej "poprawne rozwiązanie" z punktu widzenia "konwencja przez konfigurację", a to łącze zapewnia pewne rozwiązania typu konfiguracji, ale nie jest zorientowane na konwencje. jeden, ale mimo to pytam.) Dostarczone rozwiązania zawierają wtyczkę AntRun i wtyczkę appAssembler i zastanawiam się, czy mógłbym to zrobić bez nich.)
Oblęcy z obydwoma rozwiązaniami: 1./deklarowanie "conf" jako zasobu nadal zawiera je w słoiku i nie pozostawia nam łatwego sposobu na wykluczenie; 2./tworzenie zasobów wewnętrznych "conf" i wyłączenie go w wtyczce powoduje, że nie znajduje się on w katalogu głównym ścieżki klasy. – YoYo
z jakiegoś powodu jest to jedna z nielicznych ogólnie użytecznych odpowiedzi na pytanie "jak wykluczyć coś z słoika z maven" podczas wyszukiwania w Google ... nawet jeśli nie odpowiada dokładnie na OP, to nadal jest świetnym przykładem użycia 'maven-jar -plugin' – mmcrae