2011-08-05 15 views
16

High Level Cel: Utwórz jeden projekt aplikacji Web Maven, który może być poprawnie stosowane zarówno w Netbeans i EclipseCzy Eclipse może importować projekt Maven Web jako "Dynamiczną aplikację internetową"?

Przy konwersji projekt Maven Eclipse, typ projektu nie wydaje się być wartość Dynamic Web Aplikacja przy użyciu polecenia: mvn eclipse: eclipse -Dwtpversion = 2,0

w Eclipse, jeśli tworzenie dynamicznych aplikacji WWW, wiele więcej opcji są wyświetlane w Eksploratorze projektu, takie jak: JAX-WS Web Services, Deskryptor wdrażania itp. To zupełnie inna struktura ramowa.

enter image description here

Ponadto, po konwersji do Eclipse z powyższym poleceniu, nie mogę "Run" to mimo że wyjście z przeliczenia mówi: [INFO] Stosując jako serwer WTP: Apache Tomcat v7.0 . Zamiast chcieć działać jako usługa sieciowa, pyta mnie, czy jest to Java Servlet, Applet lub Unit test.

enter image description here

z dynamicznym Web App (native Eclipse), to jest to, co pojawia się podczas uruchamiania projektu:

enter image description here

Może Pytam zbyt Eclipse, a do zdobycia wbudowana funkcjonalność aplikacji internetowej, nie może pochodzić z Maven?

Jest jeszcze jeden, który mógłbym spróbować. Mogłem stworzyć dynamiczną aplikację internetową w Eclipse, a następnie nacisnąć "Konwertuj do Mavena". Weź ten POM, zmodyfikuj, a następnie zobacz, czy netbeans również go załaduje.

My 'pom.xml':

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
<modelVersion>4.0.0</modelVersion> 

<groupId>com.voxel</groupId> 
<artifactId>servermap</artifactId> 
<version>1.0-SNAPSHOT</version> 
<packaging>war</packaging> 

<name>userprofile</name> 

<properties> 
    <endorsed.dir>${project.build.directory}/endorsed</endorsed.dir> 
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
</properties> 

<dependencies> 
    <dependency> 
     <groupId>javax</groupId> 
     <artifactId>javaee-web-api</artifactId> 
     <version>6.0</version> 
     <scope>provided</scope> 
    </dependency> 

    <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>4.8.2</version> 
     <scope>test</scope> 
    </dependency> 

    <dependency> 
     <groupId>com.sun.jersey</groupId> 
     <artifactId>jersey-server</artifactId> 
     <version>1.8</version> 
    </dependency> 
    <dependency> 
     <groupId>com.sun.grizzly</groupId> 
     <artifactId>grizzly-servlet-webserver</artifactId> 
     <version>1.9.18-m</version> 
    </dependency> 
</dependencies> 

<repositories> 
    <repository> 
     <id>maven2-repository.dev.java.net</id> 
     <name>Java.net Repository for Maven</name> 
     <url>http://download.java.net/maven/2</url> 
    </repository> 
</repositories> 

Odpowiedz

15

Zgodnie z sugestią Jhericksa, jeśli używasz m2eclipse, nie musisz używać eclipse:eclipse goal. To, co robi eclipse:eclipse goal, może być również wykonane za pomocą programu m2eclipse.

Aby przekonwertować projektu Dynamic Web Application, można skonfigurować opcje Project Facets we właściwościach projektu

enter image description here

+0

To wydaje się być zasadniczo tym, czego mi brakowało. Koncepcja aspektów projektu. Nadal mam dużo pracy do zrobienia, aby dostosować to do pracy w Eclipse + Netbeans + IntelliJ, ale to doprowadza mnie do głównego problemu, który miałem :) – jsidlosky

+1

Hmm ... Kiedy importuję mój moduł Maven, ten aspekt projektu automatycznie przygotowuje dla mnie, więc nie wiem, co różni mnie od @jsidlosky. – jhericks

+0

Brak kroku: Po dodaniu aspektu 'Dynamic Web Module', jak nakazać Eclipse, aby używał' src/main/webapp' zamiast swojego zwykłego katalogu 'WebContent'? –

3

miałem więcej szczęścia z m2eclipse plugin z Sonatype. Kiedy zaczynałem, popełniłem błąd, próbując użyć zarówno m2eclipse, jak i celu eclipse: eclipse. Nie robią dokładnie tego samego, więc jeśli zainstalujesz wtyczkę, przestań robić mvn eclipse: eclipse. W każdym razie bardzo dobrze sprawdziło się to przy pojedynczych projektach internetowych i bardzo dobrze z projektami w stylu reaktora wielostanowiskowego.

Jedyny problem, jaki miałem, to próba wdrożenia pliku wojny na serwerze skonfigurowanym w środowisku Zaćmienie, jeśli ten plik wojenny jest zbudowany z nakładką, ale to nie wydaje się być problemem dla ciebie.

+0

użyłem metody importu wtyczki m2eclipse i wygląda lepiej niż z mvn eclipse: eclipse metody! Więc dziękuję za to. Jednak wciąż nie jest to "dynamiczna aplikacja internetowa" z punktu widzenia Eclipse. Zdaję sobie sprawę, że może proszę o zbyt wiele, ale pomyślałem, że to możliwe. Uaktualniłem mój post up z screen-shotami, aby było bardziej zrozumiałe. Dziękuję Panu. – jsidlosky

+0

Kiedy robię to w moim projekcie, to działa. Mam opcję Run on Server dla moich aplikacji internetowych (i faktycznie uruchomi to na moim serwerze). Nie jestem pewien, na jaką magię patrzy w moim projekcie, żeby to zadziałało. Jedną rzeczą, którą możesz spróbować, jest upewnienie się, że nie ma pliku .project jeszcze podczas importowania. Ponadto nie mogę stwierdzić z Twoich zrzutów ekranu, ale zakładam, że masz katalog src/main/webapp/WEB-INF. Jeśli nie, to może być to. Ostatnia rzecz - kliknij prawym przyciskiem myszy na projekcie, wybierz Maven, a następnie wybierz Update Project Configuration. Potem nie mam pomysłów. – jhericks

+0

Próbowałem tego i podczas wykonywania polecenia "Uruchom na serwerze" otrzymuję: 'Document base /home/nico/eclipse-workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/MyWebapp nie istnieje lub nie jest czytelnym katalogiem ' –

Powiązane problemy