mkyong - ¿Puede Eclipse importar un proyecto web de Maven como una "aplicación web dinámica"?
rest maven eclipse (3)
Como lo sugiere jhericks, si usa m2eclipse
, no necesita usar eclipse:eclipse goal
. Lo que hace el eclipse:eclipse goal
también puede hacerse con el m2eclipse.
Para convertir un proyecto a la aplicación web dinámica, puede configurar las opciones de Project Facets
proyecto en las propiedades de su proyecto.
Objetivo de alto nivel: crear un solo proyecto de aplicación web Maven que se pueda usar correctamente tanto en Netbeans como en Eclipse
Al convertir un proyecto de Maven a Eclipse, el tipo de proyecto no parece estar configurado en la aplicación web dinámica cuando se usa el comando: mvn eclipse: eclipse -Dwtpversion = 2.0
En Eclipse, si se crea una aplicación web dinámica, se muestran muchas más opciones en el Explorador de proyectos, como: Servicios web JAX-WS, descriptor de implementación, etc. Es una estructura de marco completamente diferente.
Además, después de convertir a Eclipse con el comando anterior, no puedo "Ejecutarlo" aunque la salida de la conversión dice: [INFO] Usando como servidor WTP: Apache Tomcat v7.0. En lugar de querer ejecutarse como un servicio web, me pregunta si esto es Java Servlet, Applet o prueba de unidad.
Con una aplicación web dinámica (Eclipse nativo), esto es lo que aparece cuando se ejecuta el proyecto:
Tal vez le estoy pidiendo demasiado a Eclipse, y para obtener la funcionalidad de aplicación web incorporada, ¿no puede venir de Maven?
Hay otro que podría intentar. Podría crear una aplicación web dinámica en Eclipse y luego pulsar "Convertir a Maven". Tome ese POM, modifíquelo y luego vea si netbeans también lo cargará.
Mi ''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>
He tenido mejor suerte con el complemento m2eclipse de Sonatype. Cuando comencé, cometí el error de intentar usar tanto el m2eclipse como el eclipse: el objetivo del eclipse. No hacen exactamente lo mismo, así que si instala el complemento, deje de hacer mvn eclipse: eclipse. De todos modos, me ha funcionado muy bien con proyectos web únicos y muy bien con proyectos tipo reactor de proyectos múltiples.
El único problema que he tenido es tratar de implementar un archivo war en un servidor configurado en eclipse si ese archivo está construido con una superposición, pero eso no parece ser un problema para ti.
El complemento m2e-wtp lo hace automáticamente, como se indica aquí: Importar Maven existente en Eclipse como WTP
Todas las facetas, carpetas de origen, etc. se configurarán correctamente después de la importación.