So beheben Sie „NoClassDefFoundError on Maven Dependency“
Wenn Sie versuchen, ein Maven-Projekt über die Befehlszeile auszuführen, kann es sein, dass Sie auf den NoClassDefFoundError stoßen , was darauf hinweist, dass eine erforderliche Abhängigkeit fehlt.
Der Hauptgrund für diesen Fehler ist, dass Maven Abhängigkeiten nicht automatisch in die von ihm erstellte JAR-Datei einbezieht. Um dieses Problem zu beheben, müssen Sie den Bibliothekscode in Ihrer JAR-Ausgabedatei „schattieren“.
Um dies zu erreichen, können Sie das Maven-Shade-Plugin verwenden. So fügen Sie es Ihrem POM hinzu:
<code class="xml"><project> ... <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <version>3.5.2</version> <executions> <execution> <phase>package</phase> <goals> <goal>shade</goal> </goals> </execution> </executions> </plugin> </plugins> </build> ... </project></code>
Dieses Plugin erstellt automatisch ein „uber-JAR“, das Ihre Klassen und die Bibliotheksabhängigkeiten enthält.
Sobald das Plugin registriert ist, können Sie kann die folgenden Befehle ausführen:
<code class="sh">$ mvn package $ java -cp target/bil138_4-0.0.1-SNAPSHOT.jar tr.edu.hacettepe.cs.b21127113.bil138_4.App</code>
Wenn der Fehler weiterhin besteht, können Sie das Shade-Plugin weiter konfigurieren, um anzugeben, welche JARs enthalten sein sollen, oder um eine Hauptklasse für eine ausführbare JAR-Datei festzulegen. Weitere Informationen finden Sie in der Dokumentation zum Maven-Shade-Plugin.
Das obige ist der detaillierte Inhalt vonWie behebt man „NoClassDefFoundError' bei der Maven-Abhängigkeit bei der Ausführung über die Befehlszeile?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!