Frage

Ich habe eine Webanwendung, die auf diese Weise strukturiert ist:

A.jar -> b.war -> c.war

Ich verwende Eclipse Juno und die Die WTP-Version ist 1.1. Das a.jar ist ein Workspace-Dienstprogramm, das von B.War enthalten ist. B.War ist ein Kriegsprojekt, das von C.War als Overlay enthalten ist. Das ist das der Weg Ich mache das:

<dependency>
    <groupId>com.projects</groupId>
    <artifactId>B</artifactId>
    <version>1.0-SNAPSHOT</version>
    <type>war</type>
    <scope>runtime</scope>
</dependency>

Danach stellte ich das C-Projekt auf dem Tomcat-Server bereit. Das funktioniert wie ein Zauber, wenn ich den Maven-erzielten Krieg manuell für den Tomcat einsetze, weil a.jar in enthalten ist Web-inf / lib. Mein Problem kommt jedoch, wenn ich lasse M2E-WTP. Machen Sie den Einsatz, denn es tut die Überlagerung ordnungsgemäß, aber keine transitive Abhängigkeit. Ich habe es versucht, es als Pom einzuhalten, wie ich hier irgendwo hier las, aber ich habe das gleiche Ergebnis.

<dependency>
    <groupId>com.projects</groupId>
    <artifactId>B</artifactId>
    <version>1.0-SNAPSHOT</version>
    <type>war</type>
    <scope>runtime</scope>
</dependency>

<dependency>
    <groupId>com.projects</groupId>
    <artifactId>B</artifactId>
    <version>1.0-SNAPSHOT</version>
    <type>pom</type>
</dependency>

Ich verwende die neuesten Versionen von m2e. (1.2) und M2E-WTP. (0,16) und haben meine Projekte mit der MAVEN-Konfiguration aktualisiert.

Ist es ein M2E-WTP-Problem oder muss ich einfach mein Projekt auf andere Weise organisieren?


Bearbeitet

Ich habe bemerkt, dass die M2E-WTP-Konfiguration in Eclipse gespeichert ist project./settings/org.eclipse.wst.comMon.component. Datei. So sucht es nach meinem Krieg:

<dependent-module deploy-path="/"
    handle="module:/overlay/prj/B?includes=**/**&amp;excludes=META-INF/MANIFEST.MF">
    <dependency-type>consumes</dependency-type>
</dependent-module>
<dependent-module deploy-path="/"
    handle="module:/overlay/slf/?includes=**/**&amp;excludes=META-INF/MANIFEST.MF">
    <dependency-type>consumes</dependency-type>
</dependent-module>

Wie ich sehen kann, ist die Kriegsabhängigkeit festgelegt verbrauchen Während die JAR-Abhängigkeiten gesetzt sind verwenden.

Die veröffentlichte M2E-WTP-Version 0.17 scheint es nicht zu reparieren.


Bearbeitet (2013-08-30)

Heute war ich wieder auf das gleiche Problem. Sogar ich habe Eclipse Kepler mit der installierten Neueste stabile Freigabe von WTP Aus der Kiste scheint dieses Problem zu beharren. Ich dachte, es wäre gelöst, aber ich bin anscheinend mischeck ...

War es hilfreich?

Lösung

Ich denke, es ist kein Problem Ihrer Projektorganisation. Ihr Problem ist diesem M2E-WTP sehr ähnlich Fehlerbericht.

Andere Tipps

Es scheint ein Eclipse-Juno- und WTP-Plugin-Problem zu sein.

Ich hatte das gleiche Problem und ich habe auf diese Weise gelöst:

  1. Sichern Sie Ihren Eclipse-Arbeitsbereich und Ihren Projektcode
  2. Entfernen Sie Ihr Projekt von Eclipse (ohne den Inhalt entfernen)
  3. Öffnen Sie ein Befehlsterminal (cmd)
  4. Lauf MVN Eclipse: sauber
  5. Lauf MVN Eclipse: Eclipse -dwtpversion = 2.0
  6. Bearbeiten Sie Ihre Eclipse ClassPath-Datei mit einem Texteditor:% project_path% . classpath
  7. Entfernen Sie alle Zeilen mit dem Attribut Art = "var" von deiner .classpath. Datei. Zum Beispiel:

    <KlassePathential-Art = "VAR" -PATH = "M2_REPO / JAVAX / Servlet / Servlet-API / 2.5 / Servlet-API-2.5.jar" SourcePath = "M2_REPO / JAVAX / Servlet / Servlet-API / 2.5 / Servlet-API-2.5 -Sources.jar "/>

  8. Speichern Sie den Datei- und Schließen-Editor.
  9. Klicken Sie in Eclipse auf: Datei-> Importieren ...-> Maven-> Bestehende MAVEN-Projekt importieren und Ihr Projekt erneut importieren
  10. MAVEN -> Projekt aktualisieren (wenn Sie möchten)
Sie könnten auf sehen Bereitstellungsmontage. In Eclipse-Projekteigenschaften, die Probleme lösen und die MAVEN-Abhängigkeiten da sind.

Hoffe das hilft.

Ich habe auch dieses Problem. Ich habe eine hässliche Problemumgehung:

Setzen alle Die Originalkriegsabhängigkeiten in einem separaten Projekt (Typenglas) und machen sowohl den Originalkrieg als auch den Overlay-Krieg davon ab. Für das Beispiel:

A.jar -> b.war -> c.war

wird

A.jar -> B-Abhängigkeiten.jar (Neues Modul namens B-Abhängigkeiten erstellt)

B-Abhängigkeiten.JAR -> B.War

B-Abhängigkeiten.jar -> C.War

Beachten Sie, dass es nicht spezifisch für Tomcat ist; Ich verwende JBoss.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top