Heim > Java > javaLernprogramm > Hauptteil

Wie kann ich den „NoClassDefFoundError' in Maven beheben, wenn ich ihn über die Befehlszeile ausführe?

Susan Sarandon
Freigeben: 2024-10-27 04:01:02
Original
838 Leute haben es durchsucht

How can I resolve the

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>
Nach dem Login kopieren

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
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!