2013-10-07 9 views
5

Czuję, że mam w tym kręgi, więc mam nadzieję, że coś jest stosunkowo łatwe do rozwiązania.Zarządzanie zasobami zewnętrznymi do pliku Jar za pomocą Mavena (i Eclipse)

Dla aplikacji, którą rozwijam, chcę mieć zestaw plików XML, które zawierają informacje o konfiguracji. I chciałbym, żeby były edytowalne bez konieczności ponownego kompilowania pliku JAR. Tak więc chciałbym mieć je w folderze o nazwie resources w tym samym folderze co plik jar. Więc moja konstrukcja przeznaczona jest coś takiego jak

root 
| 
- app.jar 
| 
- resources 
    | 
    - config 
    | 
    - config1.xml 
    - config2.xml 

udało mi się dostosować mojego pom.xml tak, że będzie skopiować zasoby do mojego folderu docelowego przy użyciu copy-resources w maven-resource-plugin.

Dodałem także mój katalog zasobów jako zasób (tak, że działa w ramach Eclipse) przy użyciu

<resources> 
    <resource> 
     <directory>resources</directory> 
    </resource> 
</resources> 

tak, że mogę do nich dostęp za pomocą

getClass().getResource("/config/xml/config1.xml");

i zamówione mój katalog zasobów w ścieżce klas manifestu słoika (jak sądzę) za pomocą manifestEntries w wtyczce maven-jar.

<manifestEntries> 
    <Class-Path>. resources</Class-Path&> 
</manifestEntries> 

i próbował wykluczyć mój zasób przed skompilowany do pliku jar przy użyciu

<configuration> 
    <exclude>resources/**/*.xml</exclude> 
</configuration> 

są nadal uzyskiwanie skompilowany do pliku jar. I jeśli ręcznie usunę je z pliku JAR, otrzymam wyjątek wskaźnika pustego przy próbie dostępu do zasobu.

Więc próbuję osiągnąć i potrzebuję pomocy, aby dowiedzieć się, jest sposób na uzyskanie struktury, którą z grubsza opisane powyżej dla zewnętrznych zasobów, które nie są wkompilowane do pliku jar, ale które są dostępne (za pośrednictwem the classpath) przez kod w słoiku w tym samym katalogu głównym, który nadal działa w środowisku Eclipse.

Każda pomoc lub wskazówki będą mile widziane.

+0

Jak rozwiązać ten problem kwestia? – Isaac

+0

Niestety, nie udało mi się. Jest to projekt osobisty, który nieco zboczył z drogi, więc w tej chwili cała konfiguracja jest dołączona do pliku JAR jako całości. Może spojrzeć na to jeszcze raz w jakimś punkcie, ale nie byłem w stanie tego rozgryźć – Ruanae

Odpowiedz

0

Nie odebrano tag excludes

<configuration> 
    <excludes> 
     <exclude>resources/**/*.xml</exclude> 
    </excludes> 
</configuration> 
+0

Cześć Dzięki temu, to było coś, czego nie zauważyłem. Dodałem "" do mojego pom, ale nadal mam zasoby zawarte w pliku JAR. Obecnie jestem w pracy, ale postaram się opublikować pełny materiał na wieczór, na wypadek, gdyby coś było z nim nie tak. – Ruanae

0

Można complicatedly wykluczyć cały folder, tak:

<excludes> 
     <exclude>config/</exclude> 
</excludes> 

czy tylko wszystkie pliki XML z konfiguracją

<excludes> 
    <exclude>**/config/*.xml</exclude> 
</excludes> 
Powiązane problemy