Per quanto riguarda la dipendenza, utilizzo solo lo maven dependency copy plugin e copio tutte le dipendenze in una cartella ./lib e fornisco uno script di avvio che utilizza lo class path wildcard (in questo modo è possibile modificare le dipendenze quanto si desidera e non avere per cambiare lo script di avvio). Per quanto riguarda i file di configurazione, l'ho inserito in una cartella ./config e lo includo di nuovo nel classpath della mia app nello script di avvio (il primo ammette solo che funzioni per> java 1.6).
Così, alla fine quasi tutta la mia applicazione ha la seguente struttura:
mystuff.jar launch.sh
./lib
./config
Poi mi limiterò a comprimere il tutto e dare ai miei utenti. L'intero processo è probabilmente facile da automatizzare usando Maven, ma confesso che lo faccio a mano: p
Se preferisci e le licenze lo permettono, puoi anche raggruppare tutte le dipendenze in un singolo jar (con dipendenze espanse all'interno) utilizzando lo assembly plugin. Ciò tende a rendere il vaso ingombrante e offre agli utenti un'app aggiornata. più difficile. Inoltre ho avuto problemi con esso a causa di una sovrascrittura dei file di classe o qualcosa del genere, quindi mi limito personalmente alla cartella ./lib.
fonte
2010-07-18 19:31:32