Eclipse: Problem mit den Abhängigkeiten von Web Deployment Assembly und Maven
Problem
In Eclipse 3.5 oder einer früheren Version müssen Sie die Abhängigkeiten über "Java EE-Modulabhängigkeiten" und die aktualisierten ".classpath" konfigurieren, um die Maven-Abhängigkeiten im richtigen Ordner "/WEB-INF/lib" bereitzustellen. Die Datei sieht folgendermaßen aus:
Datei: ".classpath", von Java EE Module Dependencies…
......
Seit Eclipse 3.6 werden die "Java EE-Modulabhängigkeiten" durch "Web Deployment Assembly" ersetzt. Sie können dies jedoch auch über die "Klassenpfadeinträge für referenzierte Projekte" tun. Die Datei ".classpath" wird jedoch als aktualisiert Folgendes:
Datei: ".classpath", von Web Deployment Assembly…
......
Leider führt der Standardwert(value=”../”)dazu, dass alle Abhängigkeiten des Maven nicht bereitgestellt werden konnten.
Lösung
Kein großes Problem, Sie können die(value=”../”) immer noch manuell in(value=”/WEB-INF/lib”) ändern, sie werden jedoch jedes Mal überschrieben, wenn Sie einen Maven-Build ausführen. Keine Sorge, es gibt noch zwei Lösungen:
1. WTP-Unterstützung
Ignorieren Sie die Einstellungen für "Klassenpfadeinträge für referenzierte Projekte" und stellen Sie stattdessen sicher, dass der Maven WTP 2.0 unterstützt
mvn eclipse:eclipse -Dwtpversion=2.0
Es wird eine neue Datei mit dem Namen "org.eclipse.wst.common.component" generiert. Im Ordner "settings" finden Sie einen Teil dieser Datei:
Datei: "org.eclipse.wst.common.component" von WTP
...... uses
Mit der WTP-Unterstützung ist es hilfreich, die Maven-Abhängigkeiten korrekt im Ordner "/WEB-INF/lib" bereitzustellen.
2. m2eclipse Plugin
Installieren Siem2eclipse, ein Eclipse-Plugin, um Maven in die Eclipse-IDE zu integrieren. Klicken Sie nach der Installation mit der rechten Maustaste auf den Projektordner, wählen Sie "Maven" -> "Update Project Configuration". Die Datei ".classpath" wird entsprechend aktualisiert. Ein Ausschnitt wird angezeigt
Datei: ".classpath" von m2eclipse
......
Es hilft auch, die Maven-Abhängigkeiten korrekt bereitzustellen.