2011-01-05 15 views
1

Ich begann mit Maven 2.2.1 und lud das neueste m2eclipse Plugin Version 0.12.0 herunter. Ich benutze Eclipse 3.5.1 und Tomcat 6.0.26.
ich ausgecheckt das mvc-ajax Projekt (in Eclipse: Datei> Neu> Projekt> SVN> Projekt aus dem SVN), und wenn ich den Server lief, kam ich auf die folgende Ausnahme:Warum wird eine Abhängigkeit in der pom.xml (mit m2eclipse) nicht kommentiert, löschen Sie das jar im Tomcat-Server-Bereitstellungsverzeichnis?

org.apache.jasper. Jasper: Unable TLD "META-INF/c.tld" aus JAR-Datei "file: /tomcatDeployDirectory/mvc-ajax/WEB-INF/lib/jstl-1.2.jar" lesen

die benötigt das Löschen der JSP-api2.1.jar (wie ich aus anderen Posts herausgefunden habe).

Jetzt wollte ich einfach die Abhängigkeit für die jsp-api2.1.jar in der pom.xml kommentieren und ich tat das, und die jsp-api2.1.jar verschwand aus den Maven-Abhängigkeiten. Aber sobald ich den Server wieder startete, sah ich die gleiche Ausnahme. Ich habe das Tomcat-Server-Deployment-Verzeichnis überprüft und kann das gleiche jsp-api2.1.jar wieder sehen! Ich habe einen neuen Server erstellt, aber ich sehe das Glas dort.
Ist das ein Problem mit m2eclipse? Habe ich einen Konflikt zwischen den Versionen von Eclipse Maven und m2eclipse? Oder sollte ich etwas zusätzlich setzen?

Löschen der jsp-api2.1.jar aus dem Server Deployment-Verzeichnis hat die Aufgabe, aber muss ich das immer manuell tun?

Mit freundlichen Grüßen,
Despot

Antwort

1

ich diese eine Tonne mal mit mir geschehen habe. In der Regel liegt das daran, dass es sich bei der fraglichen JAR um eine transitive Abhängigkeit von etwas anderem (oder mehreren Elementen) handelt.

Verwenden Sie die Ansicht "Dependency Hierachy" im Eclipse M2Eclipse POM-Editor und finden Sie Ihre JAR auf der rechten Seite ... dann klicken Sie darauf. Auf der linken Seite sehen Sie alle Abhängigkeitspfade, die dazu führten, dass JAR dort war. Sie müssen sie alle abschneiden, indem Sie sie entweder auskommentieren oder eine Zeilengruppe "exclude" hinzufügen.

Sobald dies erledigt ist, müssen Sie Eclipse neu starten. Sorry, aber ich habe noch nie gesehen, dass Eclipse ein JAR dynamisch löscht, ohne es neu zu starten. Vielleicht könnte Bozhos Trinkgeldtipp funktionieren, aber ich würde trotzdem neu starten.

Nach dem Neustart gehen Sie in den Projekt-Explorer und öffnen Sie die "Maven Dependencies" -Bibliothek und suchen Sie nach dem JAR. Wenn es da ist, gehen Sie zurück und versuchen Sie weiterhin, die JAR zu beseitigen, wie ich oben erwähnt habe. Wenn es aus der Maven Dependencies-Bibliothek verschwunden ist, sollten Sie gut gehen.

Wenn es aus der projektspezifischen Maven Dependencies-Bibliothek entfernt wurde, und dennoch innerhalb des Deploy-Verzeichnisses, dann haben Sie die Ehre, einen Fehler mit M2Eclipse zu melden!

+0

"... die Ehre, einen Fehler mit M2Eclipse zu melden!" :) Ich mag den Klang davon. Ich werde dir sagen, was mit "maven clean" passiert. Prost! – despot

+0

Sie haben Recht! Der Neustart von Eclipse ist unbedingt erforderlich. Selbst für den umgekehrten Prozess (Hinzufügen einer Abhängigkeit - Ich habe versucht, das Glas/Abhängigkeit, nachdem ich es gelöscht). Die richtigen Schritte, die ich gemacht habe, brauchten also nicht unbedingt Abhängigkeiten aufzuheben: 1) pom.xml Rechtsklick/Projekt Rechtsklick> Run As/Debug als> Maven Clean 2) Projekt> Clean 3) Server> Neu veröffentlichen 4) Eclipse neu starten 5) Wiederholen Sie die Schritte 2) und 3). Wie auch immer, Ruhm geht an dich! Prost! – despot

2

Sie sollten mvn clean nennen, so dass Ihre target Richt-up gereinigt wird.

Mit m2eclipse tun Sie dies aus einem Dialog. Right click the pom file > Run As > Maven Clean

Btw, für die jsp-api Abhängigkeit, können Sie einstellen, es ist <provided>

+0

Wie mache ich diesen Befehl "mvn clean" von Eclipse? Ich habe die m2eclipse heruntergeladen, um mich nicht mit diesen rohen Befehlsproblemen zu beschäftigen ... Also, kann das aus der Finsternis gemacht werden? Danke – despot

+0

@ user521754 siehe aktualisiert – Bozho

+0

nein :(Entschuldigung - das ist nicht wahr (zumindest nicht für meine Konfiguration). Ich habe die pom.xml Rechtsklick/Projekt Rechtsklick> Ausführen als/Debug als> Maven Clean. Das Ergebnis ist Das gleiche - ich finde immer das Glas im Server Deployment-Ordner. Das funktioniert nicht. Danke trotzdem! – despot