2013-02-06 13 views
12

Mam aplikację internetową, która jest skonstruowany w ten sposób:WTP - m2e nie rozmieszczanie przechodnie zależności

A.jar -> B.war -> C.war

jestem używanie Eclipse Juno i wersji WTP to 1.1. A.jar jest projektem użyteczności przestrzeni roboczej, który jest uwzględniany przez B.war. B.war to projekt wojenny, który C.Water włącza jako nakładkę. To the way robię, że:

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

Po tym, wdrożyć projekt C do serwera Tomcat. Działa to jak zaklęcie, jeśli ręcznie wdrożyłem wojnę generowaną przez Mavena do Tomcat, ponieważ A.jar jest zawarty w WEB-INF/lib. Jednak mój problem pojawia się, gdy pozwala mi wdrożyć m2e-wtp, ponieważ wykonuje poprawnie nakładkę, ale nie zawiera zależności przejściowej A. Próbowałem włączyć to jako pom, jak czytałem gdzieś tutaj, ale mam taki sam rezultat.

<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> 

Używam najnowsze wersje m2e (1.2) i m2e-WTP (0,16) i mają moich projektów aktualizowanych z konfiguracją Maven.

Czy to kwestia m2e-wtp, czy po prostu muszę zorganizować mój projekt w inny sposób?


EDITED

zauważyłem konfiguracja m2e-WTP jest przechowywany w project./settings/org.eclipse.wst.common.component pliku Eclipse. Tak to wygląda na moim wojny:

<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> 

Jak widzę zależność wojna jest ustawiony na zużywają natomiast współzależności jar są ustawione na użytku.

Wydana wersja m2e-wtp 0.17 nie wydaje się go naprawić.


EDYCJI (2013-08-30)

Dzisiaj byłem z powrotem do tego samego problemu. Nawet mam Eclipse kepler zainstalowany z latest stable release of WTP po wyjęciu z pudełka, problem ten wydaje się utrzymywać. Myślałem, że został rozwiązany, ale najwyraźniej źle to zinterpretowałem ...

+0

Tak. Wciąż widzę problem z m2e-wtp - Integracja Maven dla WTP (Inkubacja) wersja 0.17.0.20130212. –

Odpowiedz

5

Myślę, że to nie jest problem organizacji twojego projektu. Twój problem jest bardzo podobny do tego m2e-wtp bug report.

+2

m2e jest świadectwem tego, jak otwarte źródło ma otwarte rany ... – Rob

+0

Spodziewałem się innego rodzaju odpowiedzi, ale suposse to błąd wtyczki. Zasługujesz na nagrodę dzięki linkowi do niej. –

+0

Błąd został naprawiony w dniu 2015-03-05 15. Przetestowałem migawkę m2e-wtp z http://download.eclipse.org/m2e-wtp/snapshots/mars/ – cthiebaud

1

Wygląda na problem wtyczki Eclipse Juno i WTP.

miałem ten sam problem i rozwiązać w ten sposób:

  1. zapasowej obszaru roboczego Eclipse i kod projektu
  2. usunięcia projektu z Eclipse (bez usuwania zawartości)
  3. otworzyć Terminal polecenia (cMD)
  4. prowadzony mvn Eclipse czysty
  5. prowadzony mvn Eclipse Eclipse -Dwt pversion = 2,0
  6. edytować plik zaćmienie ścieżka klasy za pomocą edytora tekstu.% PROJECT_PATH% \ ścieżka klasy
  7. usunąć wszystkie linie z atrybutem rodzaju = "var" ze swojego .classpath pliku. Np

    < classpathentry rodzaju = "zmienna" ścieżka = "M2_REPO/javax/serwlet/serwlet, API/2,5/serwlet-api 2.5.jar" SourcePath = "M2_REPO/javax/serwlet/servlet- api/2.5/servlet-api-2.5-sources.jar "/>

  8. Zapisz plik & zamknij edytor.
  9. w Eclipse, kliknij: Plik-> Importuj ...-> Maven-> Importuj istniejący projekt maven i zaimportować projekt ponownie
  10. Maven -> Aktualizacja projektu (jeśli chcesz)
Mogłabyś zobacz na zestawie wdrażania we właściwościach projektu zaćmienia, w którym problem został rozwiązany i istnieją zależności węzłów.

Mam nadzieję, że to pomoże.

+0

Nadal muszę wypróbować Twoje rozwiązanie, co robię to po prostu zależność przechodnia w zależności od profilu. W każdym razie, muchas gracias. –

1

Też mam ten problem. Mam brzydki obejścia:

Put wszystko zależnościami w Original War w oddzielny projekt (typ słoika) i uczynić zarówno Original War i pokryjesz wojny zależy od tego. Tak dla przykładu:

A.jar -> B.war -> C.war

staje

A.jar -> B-dependencies.jar (nowy moduł o nazwie B stworzony -dependencies)

B-dependencies.jar -> B.war

B-dependencies.jar -> C.wa r

Należy zauważyć, że nie jest to specyficzne dla Tomcat; Używam JBoss.

+0

Tak, dokładnie to robię. Ponadto włączam B-dependencies.jar w zależności od profilu (używam go z profilem zaćmienia, a nie z produkcyjnym, ponieważ problem związany jest z zaćmieniem). Zmieniłem tytuł pytania, aby nie powiązać go z Tomcat ;-) –

+0

Założyciel m2e-wtp ma [podobne rozwiązanie] (https://bugs.eclipse.org/bugs/show_bug.cgi?id=398138#c6), który nie jest pracuję dla mnie. Jeszcze nie rozwiązany w wersji 1.0.1. –

Powiązane problemy