Compiler-Fehler „Archiv für erforderliche Bibliothek konnte nicht gelesen werden“ – Spring Tool Suite

Lesezeit: 4 Minuten

Benutzer-Avatar
totalcruise

Ich fange an, meine Entwicklungsumgebung zu konfigurieren und verwende Spring Tool Suite 2.8.1 zusammen mit m2E 1.01.

Soweit ich das beurteilen kann, diktiert mein Maven-POM (zusammen mit m2E-Smarts) meine Projekt-Build-Konfiguration und -Abhängigkeiten, da dies ein Maven-Projekt ist (mein erstes).

Was ich gerne wissen würde, ist, warum meine IDE Java-Build-Probleme anzeigt, die lauten: „Archiv erforderlich für Bibliothek Bibliothek/Pfad/somejar.jar kann nicht gelesen werden oder ist keine gültige ZIP-Datei”, wenn ich die JAR-Dateien in meinem .m2-Repository sehen kann?

Alle Fehler betrafen commons-logging:1.1.1, die ich in meinem Eltern-Pom ausgeschlossen habe. Dies war eine transitive Abhängigkeit über spring-context-support:3.0.5. Ich habe diese Bibliothek aus meinem Build ausgeschlossen und jetzt beziehen sich die Fehler auf die Spring-Context-Support-Bibliothek.

Zur Veranschaulichung habe ich einen Screenshot angehängt.

Markierungen

  • Sie müssen ausführen install Ziel für Maven: Suchen Sie nach dem Kontextmenü für m2e. Dadurch werden alle fehlenden Abhängigkeiten abgerufen.

    – dma_k

    14. Januar 2012 um 0:00 Uhr

  • Danke dma_k, ich habe das versucht, aber ohne Erfolg. Das Glas befindet sich in meinem .m2-Repository. Ich weiß nur nicht, warum es nicht gelesen wird …

    – totalcruise

    14. Januar 2012 um 13:20 Uhr

  • Wenn JAR-Dateien vorhanden sind, versuchen Sie, Ihr Projekt zu aktualisieren. Normalerweise hilft das.

    – dma_k

    14. Januar 2012 um 18:37 Uhr

  • Okay, das hat geholfen – andere Fehler jetzt – aber das hat geholfen. Vielen Dank

    – totalcruise

    14. Januar 2012 um 21:02 Uhr

Tatsächlich speichern IDEs oft das lokale Repository (Eclipse macht etwas Ähnliches, und ich muss Eclipse neu starten).

Ein hässliches Maven-Verhalten, auf das Sie stoßen könnten, ist, dass Maven eine leere Version der fehlenden Abhängigkeit (Ordner mit Metadaten, aber ohne JAR) erstellt, wenn Sie eine Abhängigkeit deklarieren, bevor Sie sie tatsächlich installieren, und Sie müssen Ihr .m2-Repository manuell bereinigen .

Drittens kann ein installiertes Archiv (jar…) beschädigt werden, also versuchen Sie, es mit einem beliebigen Archivtool (7zip…) zu öffnen, um es zu testen, und löschen Sie den gesamten Ordner, wenn das Archiv beschädigt ist.

  • Ein einfacher Neustart von Eclipse hat bei mir funktioniert, nachdem ich ein vorhandenes Projekt zu einem neuen Git-Repo hinzugefügt hatte. Danke +1

    – pjco

    27. August 2012 um 17:51 Uhr

  • Scheint ein bekannter Fehler bei Helios zu sein (nicht sicher, ob er bei Juno existiert). bugs.eclipse.org/bugs/show_bug.cgi?id=375249. Durch einfaches Löschen des Projekts (nicht des Inhalts) und Importieren des vorhandenen Projekts zurück in den Arbeitsbereich kann es behoben werden, wenn das JAR gültig ist.

    – dfdumaresq

    14. Februar 2013 um 21:36 Uhr


  • Der Neustart von Eclipse funktioniert bei mir nicht, das Löschen/Importieren funktioniert

    – Alex

    22. November 2013 um 19:57 Uhr

  • Das manuelle Bereinigen des Verzeichnisses schien für mich zu funktionieren. Einfach rm -rf ~/.m2/repository/<path of dependency> (linux/mac) ist alles, was erforderlich zu sein scheint.

    – Paul Richter

    8. April 2014 um 20:08 Uhr


In meinem Fall musste ich alle Dateien manuell löschen .m2\repository Ordner und öffnen Sie dann die Eingabeaufforderung und führen Sie sie aus mvn -install Befehl in meinem Projektverzeichnis.

  • auf ubuntu mvn -install sagt, dass es kein gültiger Befehl ist, in dem ich gerade alle Dateien gelöscht habe .m2\repository und das Maven-Projekt von IDE (STS) mit Alt + F5 aktualisiert, dann “Update von Snapshots/Releases erzwingen” aktiviert und dann OK … mein Problem gelöst … DANKE 🙂

    – Vaibhav Minijar

    12. August 2018 um 5:54 Uhr


Ich habe Eclipse als IDE verwendet und habe denselben Fehler erhalten. Ich musste Project->Maven->Update Project machen. Wählen Sie alle Kontrollkästchen unten aus, außer „offline“, insb. das eine „Update von Snapshots/Releases erzwingen“ und klicken Sie auf OK. Habe den Clean Build für das Projekt erneut durchgeführt.

Benutzer-Avatar
Kolobok

Löschen Sie beschädigte Dateien aus Ihrem lokalen .m2-Repository und Strg+F5 (Maven-Projekt aktualisieren) in Eclipse/STS. Diese Dateien werden heruntergeladen und installiert.

Das hat bei mir funktioniert.

  1. Schließen Sie Eclipse
  2. Löschen Sie ./m2/Repository
  3. Öffnen Sie Eclipse, es werden automatisch alle JAR-Dateien heruntergeladen
  4. Wenn das Problem weiterhin besteht, klicken Sie mit der rechten Maustaste auf Projekt > Maven > Projekt aktualisieren … > Aktivieren Sie „Aktualisierung von Snapshots/Releases erzwingen“.

Benutzer-Avatar
HoppyKamper

Für Googler:

In meinem Fall hatte ich versehentlich manuell eine Java-Klasse zum Erstellungspfad hinzugefügt beim Stöbern in Eclipse. Durch einen Blick auf die ‘Configure Build Path…> Libraries habe ich die Täterklasse entfernt und habe jetzt nur noch die

  • JRE-Systembibliothek
  • Maven-Abhängigkeiten

und nichts beschwert sich.

Benutzer-Avatar
Zoe steht mit der Ukraine

Die folgenden Schritte haben mein Problem gelöst.

  1. Gehen Sie zum Ordner ./m2/repository.

  2. Gehen Sie zum entsprechenden Archivfehlerordner.

  3. Stellen Sie sicher, dass eine Zip-Datei vorhanden ist.

  4. Fehlernamenordner löschen.

  5. Kommen Sie nun zu Eclipse Project – Rechtsklick – Maven -> Projekt aktualisieren.

Der obige Trick funktioniert bei mir.

1211310cookie-checkCompiler-Fehler „Archiv für erforderliche Bibliothek konnte nicht gelesen werden“ – Spring Tool Suite

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy