2012-04-11 11 views
3

Ich habe ein Maven-Projekt, das von 2 anderen lokalen Projekt und einer Vielzahl von 3rd-Party-Gläser abhängt. Ich möchte die JAR-Datei auf einen anderen Computer verschieben und die Anwendung von dort ausführen. Ich habe den Befehl mvn exec: exec ausprobiert, konnte aber die 2 lokalen Projekte nicht finden, was sinnvoll ist. Wie bekomme ich dieses Szenario zu arbeiten? Die Maschine, auf der die Anwendung installiert werden soll, ist darin enthalten und ist mit dem Internet verbunden, so dass sie bei Bedarf die in der Pom genannten Gläser herunterladen kann.Run Maven-Projekt mit Abhängigkeiten von der Kommandozeile

Antwort

1

Verwenden Sie Maven-assembly-plugin, um ein jar-with-dependencies zu erstellen, das zur Ausführung von mvn package führt, wodurch ein einfacher bereitstellbares Paket erstellt wird.

+0

Dies ist ** NICHT ** der empfohlene Weg, dies zu tun. Sogar die Maven-Assembly-Plugin-Seite http://maven.apache.org/plugins/maven-assembly-plugin/ schlägt vor, das Maven Shade Plugin zu verwenden, um ein Jar mit allen Abhängigkeiten zu erstellen – InformedA

3

Ich konnte wirklich nicht viel von der obigen Antwort verstehen. Maven sieht kompliziert für mich aus. Auf jeden Fall habe ich herausgefunden, wenn Sie dies dann tun, um Ihr Problem

Zuerst in pom.xml Datei hinzufügen, um dieses Plugin in build Abschnitt weiter unten

<plugin> 

    <artifactId>maven-assembly-plugin</artifactId> 
    <configuration> 
     <descriptorRefs> 
     <descriptorRef>jar-with-dependencies</descriptorRef> 
     </descriptorRefs> 
    </configuration> 
</plugin> 

Ich denke-Glas mit Abhängigkeiten gezeigt genau wie gelöst wird ist der Trick

nun diese Folge von Befehlen aus dem Stammverzeichnis folgen (wo die pom.xml existiert)

mvn compile 
mvn package 
mvn install assembly:assembly 

Ich weiß nicht, ob mvn-Paket erforderlich ist oder nicht, aber das dritte ist wichtig. Jetzt, wenn Sie Ihr Ziel sehen/Sie werden ein Glas mit Abhängigkeit sehen.

Wie

java -cp target/Your-Jar-1.0-SNAPSHOT-jar-with-dependencies.jar com.mycode.myapp 

dies Ihr laufen Java-Programmcode com.mycode.myapp main-Methode laufen ... (Disclaimer: Ich bin kein Experte in Maven, aber das ist für mich gearbeitet hat)

Verwandte Themen