Eclipse WTP not publishing Maven dependencies

Próbuję skonfigurować podstawowy projekt hello world przy użyciu Eclipse Indigo i serwera Tomcat. Stworzyłem dynamiczny projekt z prostym serwletem. Przetestowałem servlet i to działało dobrze. Następnie włączyłem obsługę Mavena i dodałem logback do mojego pom. W metodzie doGet servlet ' a umieszczam instrukcję logging. Podczas uruchamiania servletu skarży się, że nie może znaleźć żadnych powiązań, ponieważ słoiki logback nie są kopiowane do instancji Eclipse tomcat. Spodziewałem się znaleźć słoiki opublikowane gdzieś tutaj:

${workspace}\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\

Jak sprawić, by Eclipse działało poprawnie z WTP / Maven? Próbowałem również zainstalować złącze M2E-wtp bez różnicy.

Author: guerda, 2012-03-03

4 answers

Check Deployment Assembly (menu kontekstowe w projekcie), there must be mapping Maven Dependencies- > WEB-INF/lib .

 49
Author: e-zinc,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-03-03 09:25:05

Pochodzące z ASP.NET tło, uważam, że to szokujące, ile pracy potrzeba, aby uzyskać webapp działa z ECLIPSE WTP i Maven, zwłaszcza jeśli uczysz się na własną rękę. Mam nadzieję, że ten przewodnik szybkiego startu pomoże komuś innemu szybko się zorientować.

Istnieją dwa sposoby na uzyskanie projektu hello world pracującego w Eclipse WTP z Maven. Możesz utworzyć dynamiczny projekt internetowy, a następnie dodać Maven nature lub możesz zrobić odwrotnie.

Wymagania wstępne dla Eclipse z witrynami aktualizacji

Startup konfiguracja

Opcja 1: Utwórz dynamiczny projekt WWW, a następnie dodaj Maven Nature

  • Utwórz nowy projekt Maven, wybierz archetyp org.Apacz.maven.archetypy: Maven-archetype-webapp

  • Zmiana perspektywy na Java EE.

  • Utwórz nowy folder źródłowy src \ main \ java. Zauważ, że Eclipse nie jest wystarczająco inteligentny, aby to zrobić za Ciebie, a także kolejność folderów jest nieprawidłowa. src\main\java folder jest wyświetlany po src \ main \ resources . Można to ręcznie naprawić później we właściwościach projektu.

  • Utwórz nowy servlet. Zauważ jak Eclipse domyślnie ustawia ten plik w niewłaściwym folderze src \ main \ resources ponieważ kolejność jest błędna. Zamiast tego ręcznie wybierz src \ main \ java . Zmień mapowanie adresu URL na drugiej stronie kreatora Na/*, aby ułatwić testowanie.

  • Teraz nasz servlet jest gotowy, ale zależności od API servlet są niezwiązane. A) możemy dodać API servlet jako zależność do naszego projektu lub B) możemy powiązać z konfiguracją serwera Eclipse dla Apache 7.0.

  • Dla opcji A, dodaj tę zależność do pom:

.

<dependency>
  <groupId>org.apache.tomcat</groupId>
  <artifactId>tomcat-api</artifactId>
  <version>7.0.${set this}</version>
  <scope>provided</scope>
</dependency>
  • Dla opcji B:

    • Properties Project -> Java Build Path -> Libraries -> Add Library -> Server Runtime - > Apache Tomcat 7.0
    • kliknij prawym przyciskiem myszy i uruchom na serwerze:
  • Pusta strona powinna pojawić się w wewnętrznej przeglądarce jak http://localhost:8080 / ${artifact}

Test zależności Wydawnictwo :

  • Dodaj joda-time do pom.

  • Dodaj tę linię do servletu utworzonego wcześniej dla metody doGet i zaimportuj niezbędne zależności:

.

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    response.getWriter().println("The time is now: " + new DateTime().toString());
}

Przeładuj stronę testową, a wynik powinien być teraz następujący:

Teraz jest: 2012-03-03T14:14:29.890-05:00

Teraz jeśli chcesz grać z Servletem 3.0 i adnotacjami to domyślnie nie jest włączona, z jakiego powodu nie wiedzieć. Najpierw zmuś Mavena do używania Javy 1.6, dodając ją do pom, w przeciwnym razie za każdym razem, gdy zaktualizujesz pom, konfiguracja powróci do Javy 1.5.

  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>2.3.2</version>
    <configuration>
      <source>1.6</source>
      <target>1.6</target>
    </configuration>
  </plugin>

Otwórz Właściwości Projektu - > Aspekty Projektu. Zmień wersję pod "Dynamic Web Module" na 3.0, Zmień wersję java 1.6

Utwórz nowy Servlet z nazwą klasy Adnotatedservlet w src \ main \ java i zauważ, jak adnotacja @WebServlet jest tworzona automatycznie.

Opcja 2: Utwórz dynamiczny projekt WWW, a następnie dodaj Maven Nature

  • Wybierz Tomcat Runtime and Dynamic Module Version 3.0
  • Utwórz folder źródłowy src\main \ java
  • Ustaw domyślny cel wyjściowy\klasy
  • Ustaw katalog kontekstowy src\main \ webapp
  • Sprawdź Wygeneruj www.xml
  • Tworzenie serwletów z mapowaniem / * do szybkiego testowania
  • dodanie instrukcji wyjściowej do metody dogeta

response.getWriter().println("Another test");

  • Kliknij dwukrotnie "deskryptor wdrożenia" i dodaj ten atrybut do głównego elementu aplikacji internetowejmetadata-complete="false"

  • Kliknij prawym przyciskiem myszy projekt i wybierz Uruchom jako - > Uruchom na serwerze

  • kliknij prawym przyciskiem myszy project -> Configure - > Convert To Maven Project
  • Wybierz opakowanie jako war
  • Edytuj POM i ustaw kompilator, aby używał Javy 1.6 i dodaj zależność joda-time:

.

<dependencies>
    <dependency>
        <groupId>joda-time</groupId>
        <artifactId>joda-time</artifactId>
        <version>2.1</version>
    </dependency>
</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.3.2</version>
            <configuration>
                <source>1.6</source>
                <target>1.6</target>
            </configuration>
        </plugin>
    </plugins>
</build>
 13
Author: dcompiled,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-03-03 22:20:32

Kliknij prawym przyciskiem myszy projekt internetowy w Project Explorer, a następnie wybierz Maven - > Update Project

 1
Author: Igal Dvir,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-07-02 12:38:41

Napotkałem podobny problem i chociaż poprawnie skonfigurowałem Deployment Assembly, nadal nie działał. Następnie znalazłem, że w oknie - > Preferencje - > mój Eclipse - > Java Enterprise Project - > Web Project, w zakładce Deployment, zarządzanie projektami zależnymi zostało wyłączone. Zmieniłem go, aby wdrożyć słoiki zależnych projektów do folderu lib i wtedy wszystko działało jak czar. Mógłbym nawet wyłączyć opcję montażu instalacji.

 0
Author: vanval,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-05-24 15:08:18