spring-web maven-Abhängigkeit wird nicht mit eclipse veröffentlicht

8

Mein Projekt gae + spring + maven funktioniert perfekt. Aber ich kann es nicht mit eclipse arbeiten lassen.

Scheint so, als ob die spring-web Abhängigkeit, die in meiner pom.xml deklariert ist, verschwindet von WEB-INF / lib wenn ich mein Projekt mit GAE von Eclipse starte (mit Google Plugin, Run As & gt; Web Application ). Also ohne spring-web ist dies die Ausnahme:

%Vor%

(Vollständiger GAE-Stacktrace hier )

Von der Konsole, auf der mvn clean package gae:run ausgeführt wird, funktioniert die App wie ein Charm, und spring-web wird wie erwartet unter WEB-INF / lib-Verzeichnis platziert.

Habe gerade mein Testprojekt bei BitBucket veröffentlicht: Ссылка

Gibt es eine Idee, warum spring-web beim Starten von webapp aus eclipse nicht in WEB-INF / lib veröffentlicht wird?

Verwenden:

  • SpringSource ToolSuite 3.1.0 (basierend auf Eclipse 3.8)
  • Java 6
  • Frühling 3.2.1
  • Maven 3.0.4
  • Google App Engine 1.7.5
  • maven-gae-plugin 0.9.6

Update: Die spring-web -Abbindung wird in WEB-INF / lib veröffentlicht, wenn die Spring-Version 3.1.4 verwendet wird. RELEASE . Dies geschieht nicht mit einer Version 3.2.X.

    
jelies 02.03.2013, 12:59
quelle

4 Antworten

0

Auf jeden Fall funktioniert Frühling 3.2.x mit Eclipse und Maven nicht; spring-web wird nicht in WEB-INF / lib veröffentlicht, wenn die Anwendung über das Google Eclipse-Plugin gestartet wird.

Versucht mit Spring 3.2.1 und 3.2.2. Es funktioniert nur für mich mit niedrigeren Versionen (jetzt verwende ich 3.1.4).

    
jelies 17.03.2013, 12:34
quelle
2

Ein Jira-Problem für dieses Problem mit meiner Konfiguration (Eclipse 4.2, WAS 7.0, mvn 3) wurde hinzugefügt: Ссылка

    
faetzminator 26.04.2013 06:47
quelle
1

Wenn Ihre .classpath-Datei den Eintrag <classpathentry kind="output" path="target/classes"/> hat, versuchen Sie, sie in Ihr Verzeichnis WEB-INF / classes zu ändern. Meins ist mit Maven-Standards eingerichtet, also habe ich diese Zeile in <classpathentry kind="output" path="src/main/webapp/WEB-INF/classes"/> geändert. Das hat meine Probleme behoben (Eclipse Juno, WAS 7, no m2e install).

Auch wenn es für andere gilt, sollte ich erwähnen, dass ich mit meinem Server (Websphere) die Veröffentlichungseinstellung "Server mit Ressourcen innerhalb des Arbeitsbereichs ausführen" auswähle.

Dieses Problem zeigt, wie sehr ich die Veröffentlichung von Eclipse noch nicht verstehe, aber vor dieser Änderung, als ich die Einstellung "im Arbeitsbereich" gewählt habe, wurden meine Ressourcen tatsächlich in \ workspace.metadata.plugins \ org.eclipse.wst veröffentlicht. server.core \ tmp0 und WEB-INF \ lib enthielten kein Spring-Web. Mit der obigen Änderung sehe ich jedoch nicht mehr, dass mein Code in diesem Verzeichnis veröffentlicht wird. Ich bin mir jetzt nicht ganz sicher, wie mein Server die benötigten Binärdateien erhält, aber es scheint zu funktionieren.

Als eine Randnotiz / ein zusätzlicher Bonus (möglicherweise völlig unabhängig) muss ich nicht mehr veröffentlichen, um Aktualisierungen meiner JSPs zu sehen, wenn ich Änderungen an ihnen vornehme.

    
butallmj 02.10.2013 16:35
quelle
0

Das hat es für mich behoben:

  1. Finden Sie den Speicherort der spring-web.jar, die in Ihrer Web-App enthalten ist. In meinem Fall ist es in user.m2 \ repository \ org \ springframework \ spring-web \ 4.1.6.RELEASE \ spring-web-4.1.6.RELEASE.jar
  2. Öffnen Sie spring-web-4.1.6.RELEASE.jar en eg. 7zip
  3. Löschen Sie diese Datei aus dem Jar: META-INF \ web-fragment.xml (in 7zip klicken Sie mit der rechten Maustaste auf die Datei - & gt; löschen)
  4. Schließe 7zip und starte "Publish" auf dem Server in Eclipse

Weitere Informationen: Ссылка

    
Jens 09.07.2015 16:50
quelle