Mi sento come se stessi andando in tondo con questo, quindi si spera che sia relativamente facile da risolvere.Gestione delle risorse che saranno esterne a un file Jar utilizzando Maven (ed Eclipse)
Per l'applicazione che sto sviluppando, desidero avere un set di file XML che contengano informazioni di configurazione. E vorrei che fossero modificabili senza dover ricompilare il file jar. Quindi quello che vorrei è averli in una cartella chiamata risorse nella stessa cartella del file jar. Così la mia struttura destinata è qualcosa di simile
root
|
- app.jar
|
- resources
|
- config
|
- config1.xml
- config2.xml
sono riuscito a registrare il mio pom.xml in modo che possa copiare le risorse nella mia cartella di destinazione utilizzando copy-resources
all'interno del maven-resource-plugin
.
Ho anche aggiunto la mia directory delle risorse come risorsa (in modo che funzioni all'interno di Eclipse) utilizzando
<resources>
<resource>
<directory>resources</directory>
</resource>
</resources>
modo che io possa accedervi utilizzando
getClass().getResource("/config/xml/config1.xml");
e comprendeva la mia directory di risorse sul classpath del manifest del jar (penso) usando manifestEntries nel plugin maven-jar.
<manifestEntries>
<Class-Path>. resources</Class-Path&>
</manifestEntries>
e ha tentato di escludere la mia risorsa di essere compilato nel file jar utilizzando
<configuration>
<exclude>resources/**/*.xml</exclude>
</configuration>
sono ancora sempre compilati nel file jar. E se li rimuovo manualmente dal file jar, ottengo un'eccezione di puntatore nullo quando tento di accedere alla risorsa.
Quindi quello che sto cercando di ottenere, e ho bisogno di aiuto a capire è un modo per ottenere la struttura che ho abbozzato sopra per le risorse esterne che non sono compilate nel file jar ma che sono accessibili (via il classpath) per codice all'interno di un jar nella stessa directory root e che funziona ancora in eclissi.
Qualsiasi aiuto o guida sarebbe apprezzato.
Come avete risolto questo problema? – Isaac
Purtroppo non ci sono riuscito. Si tratta di un progetto personale che è leggermente rallentato, quindi al momento tutte le configurazioni sono raggruppate nel file jar nel suo complesso. Potresti guardarlo di nuovo, ma non sono ancora riuscito a capirlo. – Ruanae