Domanda

Sto creando un progetto di riga di comando Java, senza GUI. Il progetto utilizza un numero qualsiasi di progetti open source: Spring, Logback, Commons CLI ecc. Quando ho iniziato a pensare all'imballaggio, ho immaginato che sarebbe uscito come un file zip, che potrebbe essere esploso nel barattolo, con una sotto directory Lib e barattoli dipendenti nella lib.

adapter.jar
 /lib/dependencyA.jar
 /lib/dependencyB.jar 
 etc.  

Ho giocato con Maven Assembly, ma non sta ancora uscendo come quanto sopra, e non ho trovato esempi che generano la struttura sopra. È possibile farlo ? Inoltre, avere una struttura multi-modulo aggiunge un altro livello di complessità che non sono stato in grado di risolvere, poiché il modulo di assemblaggio non riesce a trovare il modulo core come dipendenza. Questo è il mio primo progetto Maven, quindi sto ancora imparando come funziona Maven. Ho passato il libro Sonatype, ma ho perso qualcosa in quanto usando la sezione Best Practices non è riuscito a risolvere la dipendenza mancante. Gli esempi che ho visto di solito comportano la fusione in un barattolo eseguibile Uber, alcuni dei quali usano il progetto ombra, altri no. La mia domanda è: sta facendo un barattolo Uber tra cui libri di terze parti come primavera ecc. Una buona idea? O dovrei perseverare con il mio piano di sottodirectory Zip / Lib originale?

È stato utile?

Soluzione

Chiedi al tuo modulo di assemblaggio dipendere dai moduli che si desidera impacchettare e quindi utilizzare ilu003CdependencySets> diu003CmoduleSets> Tag per includerli in qualsiasi layout desideri. Se hai altri file che non provengono da una dipendenza, puoi inserirli nel modulo di distribuzione stesso.

Si prega di leggere i documenti del descrittore dell'Assemblea. È possibile imballare, decomprimere, includere/escludere e impostare le autorizzazioni per i file nel gruppo.

Nel caso in cui non hai visto il libro Sonatype su Maven, ecco il capitolo pertinente: http://www.sonatype.com/books/mvnref-book/reference/assemblies-sect-best-practices.html

EDIT: sfuggito al <'s

Altri suggerimenti

Devi solo essere più specifico nel descrittore dell'assemblaggio. Usa un dipendente che include solo il barattolo principale e lo consegna in cima e un altro che esclude solo il barattolo principale e consegna alla Dir Lib.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top