Ich habe dieses seltsame Problem, wenn ich mein Projekt Maven-basiert mache. Ich habe in Eclipse ein neues Maven - Projekt erstellt und die dynamischen Web-Facetten aktiviert. Zur Laufzeit werden jedoch ClassNotFoundException
ausgelöst, da die Maven-Abhängigkeiten nicht in das WEB-INF/lib
-Verzeichnis kopiert werden. Ich habe sogar versucht, den Abschnitt copy-dependencies in POM hinzuzufügen, aber es hat nicht geholfen.
Jemand hier schien das richtig gelöst zu haben, aber er hat vergessen, die Lösung zu erwähnen: :(
Dies sollte nichts mit Eclipse und m2Eclipse zu tun haben und optional für eine bessere Unterstützung - m2e-wtp . Außerdem benötigen Sie keine Abhängigkeiten zum Kopieren. Hier sind einige mögliche Gründe:
mvn package
aufrufen (oder klicken Sie mit der rechten Maustaste auf> maven> package) und erhalten eine Kriegsdatei. Der <packaging>
(im pom) muss war
sein.provided
oder test
sind, werden sie nicht in das Archiv aufgenommen.)Erste Installation Maven-Integration für Eclipse WTP (Hilfe-> Eclipse Marketplace)
Fügen Sie dann in der Datei pom.xml Ihres Webprojekts Folgendes hinzu:
<packaging>war</packaging>
Klicken Sie anschließend mit der rechten Maustaste auf das Projekt, Maven -> Projekt aktualisieren, das automatisch Maven-Abhängigkeiten in der Bereitstellungsassembly für Sie hinzufügen sollte.
Klicken Sie mit der rechten Maustaste auf Projekt> Maven> Maven-Projekt aktualisieren> OK, um dieses Problem zu beheben
Überprüfen Sie die Deployment AssemblyEigenschaft des Projekts. Ich habe gesehen, dass einige mvn Eclipse:eclipse
-generierte Eclipse-Projekte die Assets manchmal am falschen Ort bereitgestellt haben. Soweit ich mich erinnern kann, hatte die neue Deployment Assembly einige Probleme mit früheren Versionen von Eclipse 3.6 (Helios).
Ich habe gerade Maven -> Update-Projekt für mich gearbeitet.
Wenn Sie sich Ihre Bereitstellung ansehen und feststellen, dass WEB-Inf/lib keine Ihrer Maven-Abhängigkeiten enthält, müssen Sie sicherstellen, dass sich diese Maven-Abhängigkeiten in Ihrer Bereitstellung befinden.
Seien Sie jedoch vorsichtig bei Eclipse und aktualisieren Sie nicht einmal alles mit einem Maven-Update. Wenn Sie bereinigen, neu erstellen und erneut bereitstellen, und der lib-Ordner immer noch nicht aufgefüllt wird, versuchen Sie, die Anwendung zu entfernen und erneut zu den Server-Bereitstellungen hinzuzufügen.
Dadurch wurde das System für mich freigegeben.
Klicken Sie mit der rechten Maustaste auf Projekt -> Bereitstellungsassembly: Prüfen Sie, ob Sie die Maven-Abhängigkeiten und alle anderen darin haben . Falls nicht, Klicken Sie mit der rechten Maustaste auf Projekt -> Maven -> Workspace Resolution
(Vielleicht dann Maven -> Update Project, aber dann schau nochmal in "Deployment Assembly" und schau, was du hast.) Das hat es (endlich!) für mich gelöst.