Abhängigkeitsauflösung über Shade Plugin für NoClassDefFoundError
Bei einer ersten Erfahrung mit Maven kann es zu Inkonsistenzen zwischen Eclipse und der Befehlszeilenverwendung kommen Abhängigkeitsmanagement. Trotz erfolgreicher Maven-Projekterstellung und dem Hinzufügen von Abhängigkeiten in Eclipse kann die Ausführung des Projekts über die Befehlszeile zu einem NoClassDefFoundError führen.
Standardmäßig verpackt Maven Abhängigkeiten separat und schließt sie nicht in die kompilierte JAR-Datei ein. Diese Auslassung führt dazu, dass die Java VM beim Versuch, Bibliotheksklassen während der Ausführung zu finden, fehlschlägt.
Anstatt Bibliotheken manuell zum Klassenpfad hinzuzufügen, bietet das Maven-Shade-Plugin eine effizientere Lösung. Es erstellt ein „Über-JAR“, das Anwendungsklassen mit dem erforderlichen Bibliothekscode kombiniert.
Um dies zu implementieren, fügen Sie die folgende Plugin-Konfiguration zu Ihrem POM hinzu:
<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>
Nachdem Sie diese Konfiguration hinzugefügt haben, Führen Sie die folgenden Befehle erneut aus:
$ mvn package $ java -cp target/bil138_4-0.0.1-SNAPSHOT.jar tr.edu.hacettepe.cs.b21127113.bil138_4.App
Weitere Konfigurationsoptionen, wie die Angabe enthaltener JARs oder einer ausführbaren JAR-Datei, finden Sie im Abschnitt „Beispiele“ auf der Maven-Shade-Plugin-Website.
Das obige ist der detaillierte Inhalt vonWie kann ich den „NoClassDefFoundError' in Maven beheben, wenn ich ihn über die Befehlszeile ausführe?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!