Ich möchte mein Projekt in ein einziges ausführbares JAR-Paket verpacken, um es zu verteilen.
Wie kann ich ein Maven-Projekt dazu bringen, alle abhängigen JARs in mein Ausgabe-JAR zu packen?
Ich möchte mein Projekt in ein einziges ausführbares JAR-Paket verpacken, um es zu verteilen.
Wie kann ich ein Maven-Projekt dazu bringen, alle abhängigen JARs in mein Ausgabe-JAR zu packen?
Okay, das ist also meine Lösung. Ich weiß, es ist nicht mit der pom.xml-Datei. Aber ich hatte das Problem, dass mein Programm kompiliert wurde und unter Netbeans lief, aber es scheiterte, als ich Java -jar MyJarFile.jar versuchte. Nun, ich verstehe Maven nicht ganz und ich denke, dass dies der Grund ist, warum ich Probleme hatte, Netbeans 8.0.2 dazu zu bringen, meine jar-Datei in eine Bibliothek einzubinden, um sie in eine jar-Datei zu packen. Ich habe darüber nachgedacht, wie ich jar-Dateien ohne Maven in Eclipse verwendet habe.
Es ist Maven, das alle Abhängigkeiten und Plugins kompilieren kann. Nicht Netbeans. (Wenn Sie Netbeans bekommen können und in der Lage sein, java .jar zu verwenden, um dies zu tun, sagen Sie mir bitte wie (^.^)v )
[Gelöst - für Linux] durch Öffnen eines Terminals.
Entonces
cd /MyRootDirectoryForMyProject
Weiter
mvn org.apache.maven.plugins:maven-compiler-plugin:compile
Weiter
mvn install
Dadurch wird eine jar-Datei im Zielverzeichnis erstellt.
MyJarFile-1.0-jar-with-dependencies.jar
Jetzt
cd target
(Möglicherweise müssen Sie diese ausführen: chmod +x MyJarFile-1.0-jar-with-dependencies.jar
)
Und schließlich
java -jar MyJarFile-1.0-jar-with-dependencies.jar
Siehe bitte
https://cwiki.apache.org/confluence/display/MAVEN/LifecyclePhaseNotFoundException
Ich werde diese Lösung auf ein paar anderen Seiten mit einem ähnlichen Problem posten. Hoffentlich kann ich jemandem eine Woche voller Frustration ersparen.
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.4.1</version>
<configuration>
<!-- get all project dependencies -->
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<!-- bind to the packaging phase -->
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
Fügen Sie einen Text zur Erläuterung Ihrer Lösung ein. Siehe diese Hilfe zum Schreiben einer guten Antwort stackoverflow.com/help/how-to-answer .
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.
15 Stimmen
Bitte erklären Sie, auf welches Ziel des Abhängigkeits-Plugins Sie sich beziehen. Ich kenne kein Ziel, das das tut, was die ursprüngliche Frage verlangt: alle Abhängigkeiten entweder A) in das Autoren-Jar durch Umpacken zu packen, oder B) ein ausführbares Jar zu erstellen, das die anderen in einem Klassenpfad von MANIFEST.MF hat
2 Stimmen
Dies könnte für Sie nützlich sein rationaljava.com/2015/02/
1 Stimmen
2 Beispiele: tugay.biz/2015/12/a-standalone-java-web-anwendung-mit.html tugay.biz/2016/11/wie-erstelle-ich-ein-ausführbares-jar-mit.html
2 Stimmen
Siehe stackoverflow.com/questions/35217128/
0 Stimmen
Für Gradle siehe den Stackoverflow-Beitrag: Fat/Uber JAR in Gradle erstellen .