2891 Stimmen

Wie kann ich mit Maven ein ausführbares JAR mit Abhängigkeiten erstellen?

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?

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/

-1voto

mycowan Punkte 931

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.

2 Stimmen

Versuchen Sie, das Maven-Projekt zu öffnen, das Sie mit Netbeans erstellt haben. Die Grundregel von Netbeans lautet: Erstellen Sie immer ein Maven-Projekt und niemals eine "Java-Anwendung". Fügen Sie ein Maven-Shade-Plugin wie in einer der Antworten hinzu. Funktioniert wie ein Zauber.

-2voto

Shang Gao Punkte 59
<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>

1 Stimmen

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.com

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.

Powered by:

X