2011-08-18 16 views
7

Właśnie przełączyłem się na Eclipse Indigo z Helios, i wpadłem na jakiś kłopot, kiedy próbowałem uruchomić projekt internetowy z obsługą Maven na Tomcat 6 z WTP.Eclipse 3.7/Indigo m2e Problem zależności integracyjnej WTP od

Mam klasyczny problem Tomcat, który nie widzi zależności Mavena. W rozwiązaniu Helios rozwiązaniem było dodanie zależności Maven do zespołu wdrażania za pośrednictwem: Właściwości projektu -> Wdrożenie -> Dodaj "Wpisy ścieżki budowy Java" -> Zależności Maven

Niestety opcja "Ścieżka tworzenia Java" Wpisy "nie są wyświetlane, tylko" Folder "i" Projekt ". Nie jestem pewien, czy jest to zamierzone, czy też jest coś nie tak z moją konfiguracją.

W próbie usunięcia czynników zewnętrznych, używam następującą konfigurację:

  • Świeża instalacja Eclipse Indigo (Mac)
  • Fresh roboczy
  • m2e WTP Integracja poprzez zainstalowane Eclipse Marketplace
  • Utwórz nowy projekt Maven
  • Dodaj niektóre zależności z maven i kod do ich używania
  • C onvert projekt do postaci fasetowanego
  • Dodaj 'dynamiczny moduł sieci aspekt
  • Maven> Aktualizacja Konfiguracja projektu
  • Dodaj do Tomcat 6 Server
  • Run na serwerze

W tym momencie widzę uzyskać wyjątek ClassNotFoundException dotyczący moich brakujących zależności. Jeśli uruchomię "mvn war: war" i dołączę zmontowany katalog "WEB-INF/lib" do Zespołu wdrażania projektu, to oczywiście zależności są poprawnie pobierane - w porządku dla szybkiej naprawy, ale nie idealne.

Większość problemów, o których czytałem w odniesieniu do podobnych problemów, sprowadza się do braku modułu integracji WTP, ale nie wydaje mi się to problemem.

Czy robię coś nie tak?

+0

Czy rodzaj opakowania to słoik lub wojna "nowego maven project"? – Raghuram

+0

Opakowanie było JAR - zmieniłem nazwę na WAR, a serwer jest teraz poprawnie wdrażany! Opublikuj to jako odpowiedź, dzięki czemu mogę oznaczyć ją jako poprawną - dzięki. – sebrichards

+0

Opublikował komentarz jako odpowiedź. – Raghuram

Odpowiedz

3

Wygląda na to, że typ opakowania urządzenia new maven project to jar. Jeśli tak, możesz go zmienić na war i spróbować.

1

Oto inne rozwiązanie: stałe.Plik classpath

<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER"> 
      <attributes> 
-     <attribute name="org.eclipse.jst.component.nondependency" value=""/> 
+     <attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/> 
      </attributes> 
    </classpathentry> 
1

prawym przyciskiem myszy na projekcie

  1. wyboru Assembly Deployment> kliknij Dodaj

  2. Wybierz Java Wpisy budować ścieżkę z wyświetlonym oknie kliknij przycisk Dalej

  3. Korzystanie Ctrl i mysz, aby wybrać wszystkie pokazane lib

Po tym zobaczymy zmiany w pliku .classpath.

Publikuj swój projekt ponownie w zakładce serwer.

+1

Ustawienia te gubią się za każdym razem, gdy uruchamiasz aktualizację Maven. Wtyczka m2e nadpisuje te ustawienia, więc są one praktycznie bezużyteczne, jak to ma miejsce w przypadku aplikacji internetowych z obsługą Maven ... –

Powiązane problemy