2015-02-05 27 views
7

Ho un progetto Luna eclissi con un mucchio di dipendenze di esperti definite in un pom.xmlCome includere le dipendenze Maven in un file jar?

Tutto funziona correttamente in eclissi. Ma ora ho bisogno di includere tutte queste dipendenze in un file jar esportabile (così posso spedirle ai lavoratori in Apache Spark).

Continuo a giocherellare con le impostazioni di esportazione, ma non vedo alcun modo per esportarle nel file jar.

enter image description here

trovo alcune risposte che spiegano come configurare Maven per confezionare le sue dipendenze. È la mia unica opzione, o c'è un modo per farlo in eclissi?

+0

Avrete le dipendenze come JAR nel vostro repo Maven locale (di solito ~/.m2 /). Non è sufficiente usarli? In caso contrario, dai un'occhiata a [questa domanda in qualche modo correlata] (http://stackoverflow.com/questions/81260/easiest-way-to-merge-a-release-into-one-jar-file). –

+0

Attualmente non ho installato eclissi, ma per quanto mi ricordo la finestra di dialogo "Eseguibile" può essere ciò che stai cercando. – slartidan

+0

Mi chiedo, perché non usare Maven per questo tipo di rilascio? È banale da parte di Maven Assembly o Maven shade Plugin –

risposta

6

Date un'occhiata a questa domanda: How can I create an executable JAR with dependencies using Maven?

Penso che la risposta di @Rocky Inde è quello che state cercando (con Eclipse):

1) Basta fare clic destro sul tuo cartella del progetto (in Eclipse) e selezionare Esporta

2) Quindi selezionare Java -> Jar Runnable

3) vi verrà chiesto di scegliere la posizione del ja file di

4 r) Infine, selezionare la classe che ha il metodo principale che si desidera corsa e scegliere le dipendenze pacchetto con il file JAR e fare clic su Fine

1

allora avete bisogno di includere ombra pluggin nella vostra pom.xml e mvn package produrrà il vaso ombra (vaso di grasso) this collegamento fornisce informazioni circa shade pluggin

+0

ha aggiornato la risposta .. – kasinavijay

+1

Personalmente, se dico a qualcuno di usare il plugin ombra per un uber-jar, dirò esplicitamente a loro di renderlo un classificatore separato per il uber-jar, perché la gestione delle dipendenze di Maven sarà incasinata se in In ogni caso hai usato il risultato uber-jar come dipendenza di un altro progetto. –

0

ti suggerisco di usare Maven plug-assemblaggio. Dalla pagina di utilizzo:

Ad esempio, immagina che il nostro progetto produca un JAR. Se vogliamo creare un binario di assembly che includa le dipendenze del nostro progetto, possiamo trarre vantaggio da uno dei descrittori prefabbricati del plug-in Assembly. Si configura come segue nella pom.xml del progetto:

<project> 
    [...] 
    <build> 
    [...] 
    <plugins> 
    <plugin> 
     <!-- NOTE: We don't need a groupId specification because the group is 
     org.apache.maven.plugins ...which is assumed by default. 
     --> 
     <artifactId>maven-assembly-plugin</artifactId> 
     <version>2.5.3</version> 
     <configuration> 
     <descriptorRefs> 
      <descriptorRef>jar-with-dependencies</descriptorRef> 
     </descriptorRefs> 
     </configuration> 
     [...] 
</project> 
Problemi correlati