Der größte Teil wird von Thorbjørn Ravn Andersen richtig beantwortet.
Diese Antwort versucht, die verbleibende Frage zu beleuchten: Wie könnte die fehlerhafte Klassendatei im Glas landen?
Jeder Build (mvn & javac oder eclipse) signalisiert auf seine spezifische Weise, wenn ein Kompilierungsfehler auftritt, und lehnt es ab, eine Jar-Datei daraus zu erstellen (oder Sie zumindest prominent zu benachrichtigen). Die wahrscheinlichste Ursache für das unbeaufsichtigte Abrufen von Klassendateien mit Fehlern in einem JAR ist die gleichzeitige Ausführung von Maven und Eclipse.
Wenn Sie Eclipse geöffnet haben, während Sie einen MVN-Build ausführen, sollten Sie Projekt > Automatisch erstellen deaktivieren, bis MVN abgeschlossen ist.
EDIT : Lassen Sie uns versuchen, das Rätsel in drei Teile zu teilen:
(1) Was bedeutet "java.lang.Error: Ungelöstes Kompilierungsproblem"
Dies wurde von Thorbjørn Ravn Andersen erklärt. Es besteht kein Zweifel, dass Eclipse beim Kompilieren einen Fehler gefunden hat .
(2) Wie kann eine von Eclipse kompilierte Klassendatei in eine von maven erstellte JAR-Datei gelangen (vorausgesetzt, Maven ist nicht für die Verwendung von ecj zum Kompilieren konfiguriert)?
Dies kann entweder durch Aufrufen von maven ohne oder mit unvollständiger Reinigung geschehen. Oder ein automatischer Eclipse-Build könnte auf Änderungen im Dateisystem (von maven durchgeführt) reagieren und eine Klasse neu kompilieren, bevor maven Klassendateien in der JAR sammelt ( dies habe ich in meiner ursprünglichen Antwort mit "gleichzeitiger Vorgang" gemeint ).
(3) Wie kommt es, dass ein Kompilierungsfehler vorliegt, der jedoch mvn cleanerfolgreich ist?
Wieder mehrere Möglichkeiten: (a) Compiler sind sich nicht einig, ob der Quellcode legal ist oder nicht, oder (b) Eclipse kompiliert mit fehlerhaften Einstellungen wie unvollständigem Klassenpfad, falscher Java-Konformität usw. So oder so eine Sequenz von Aktualisierung und Bereinigung in Eclipse sollte das Problem auftauchen.