2016-04-13 12 views
1

Ich verbrachte die letzten drei Tage mit diesem Problem zu kämpfen, so kann auch die Antwort posten, so wird es jemand Zeit sparen.Bibliotheken in der pom.xml sind zur Laufzeit nicht verfügbar

Ich habe ein neues Maven-Projekt erstellt, einige Abhängigkeiten von meinem lokalen Repository zu seinem Pom hinzugefügt und Code geschrieben, um Klassen aus diesen Jars zu verwenden.

Ich habe auch versucht, die Abhängigkeiten zu entfernen und das Hinzufügen der Gläser manuell, über Projekteigenschaften - Java Build Path - Bibliotheken - In Externe JARs ...

So oder so, zur Laufzeit würde ich eine ClassNotFoundException oder eine NoClassDefFoundException bekommen, dass die Definition der Klasse, auf die ich zugreifen wollte, nicht gefunden werden konnte. Diese Klassen konnten scheinbar zur Entwurfszeit gefunden werden - keine Fehler im Projekt und ich konnte die Klassendefinition mit Strg + Klick auf den Namen anzeigen.

Die einzige Problemumgehung, die ich gefunden hatte, war, die Bibliotheken zu meinem tomcat/lib-Verzeichnis hinzuzufügen.

+0

Dies kann häufig bei der Bereitstellung einer Maven-Webanwendung auf einem Webserver geschehen, der von der IDE verwaltet wird (Tomcat in Eclipse). Maven/Eclipse kann dann die Abhängigkeiten in "WEB-INF/lib /" in der bereitgestellten Webapp nicht aktualisieren. – f1sh

+0

Gut zu wissen. Danke für die Klarstellung. –

Antwort

1

Es stellte sich heraus, dass mein lokales Maven-Repository beschädigt war.

Ich navigierte zu meinem Verzeichnis C: \ users \ .m2 und benannte das Verzeichnis "repository" in "oldrepository" um. Ich versuchte dann eine "saubere Installation" meines Projektes - Maven brauchte eine Weile, um alle Gläser wieder herunterzuladen, aber als das fertig war, funktionierte alles nahtlos.

Ich weiß nicht, wie viel von dem Repository war korrupt, und wenn es übertrieben war, das Ganze zu löschen, aber es hat für mich funktioniert.

Hoffe das hilft jemand in der Zukunft.

Verwandte Themen