java - pom - Maven GWT 2.0 y Eclipse
execution pom error (5)
¿Alguien sabe de una buena guía para crear un proyecto con la nueva versión 2.0 de GWT usando maven y eclipse? Me estoy enfrentando a muchos problemas para que jueguen bien juntos.
Por lo que vale, puedo crear un proyecto gwt usando el plugin maven eclipse que funciona bien, pero portarlo a maven no funciona (por lo que una guía para esto sería genial).
Del mismo modo, puedo usar el plugin maven (gwt-maven-plugin), pero cuando lo importo a eclipse (import -> materialize maven projects), no se reconoce como un proyecto GWT ...
Gracias
Por si acaso. Si usa Google GIN en su proyecto, debe agregar un objetivo de compilación antes de gwt: compilar . Entonces toda la secuencia sería:
compile gwt:compile gwt:run
Puede leer la explicación aquí: http://code.google.com/p/google-gin/wiki/GinTutorial#Compilation
Puede ejecutar el siguiente comando para generar un proyecto Maven GWT:
webAppCreator -maven -noant -out
Para más información:
Un problema molesto con GWT y m2eclipse:
El modo de desarrollo GWT requiere que todos los JAR se coloquen en WEB-INF / lib. Es especialmente doloroso cuando los programadores usan m2eclipse, que proporciona su propio contenedor Eclipse classpath.
http://code.google.com/p/google-web-toolkit/issues/detail?id=5693
buenas noticias, la solución está funcionando para mí
hilo muy útil
@Pascal: gracias (no tengo suficientes reputaciones para comentar en otras publicaciones, así que aquí estoy publicando lo que funciona para mí).
Necesitaba 2.5.1 GWT (no 2.6, la última) trabajando con maven y eclipse (porque sencha GXT aún no es compatible con 2.6). Intenté seguir sin suerte
1) probé algunos arquetipos con en eclipse para generar el proyecto
2) modificar el archivo pom (basado en la discusión anterior) para cambiar las versiones a 2.5.1
Lo siguiente funcionó para mí http://mojo.codehaus.org/gwt-maven-plugin/user-guide/archetype.html
mvn archetype:generate -DarchetypeGroupId=org.codehaus.mojo -DarchetypeArtifactId=gwt-maven-plugin -DarchetypeVersion=2.5.1
mvn gwt:eclipse
mvn gwt:run
EDITAR: He actualizado mi respuesta con pasos adicionales proporcionados por el OP. Créditos al OP por los detalles.
Acabo de romper mi configuración de Eclipse tratando de instalar la última versión de Google Plugin para Eclipse (para GWT 2.0), por lo que no puedo confirmarlo todo, pero supongamos que se cumplen los siguientes requisitos previos:
- Eclipse 3.5
- Complemento de Google para Eclipse (instalado desde http://dl.google.com/eclipse/plugin/3.5 , consulte las instructions )
- Complemento m2eclipse para Eclipse (instalado desde http://m2eclipse.sonatype.org/update )
¿Has intentado:
Cree un nuevo proyecto desde Eclipse ( Nuevo> Otro ... luego seleccione Proyecto Maven y elija el arquetipo gwt-maven-plugin ).
Edite el
pom.xml
generado, actualice la propiedadgwt.version
a2.0.0
(que se ha publicado en el repositorio central),agregue el repositorio de Codehaus Snapshoty configure lagwt-maven-plugin
en1.2-SNAPSHOT
(la versión 1.2 no se lanza en el centro, esto debería suceder pronto)1.2
(que también se ha lanzado en el centro).Agregue un
<runTarget>
a la configuración de gwt-maven-plugin como se documenta en Uso del complemento de Google Eclipse .Configure el plugin maven-war tal como se documenta en la página mencionada en el paso anterior.
Active manualmente GWT en el proyecto a partir de la preferencia del proyecto configurando la casilla de verificación Utilizar Google Web ToolkitEste paso es innecesario ya que estará compilando / ejecutando con una configuración de ejecución de Maven, no con el complemento de GWT para Eclipse.
Así es como se ve mi pom.xml
:
<?xml version="1.0" encoding="UTF-8"?>
<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/maven-v4_0_0.xsd">
<!--
GWT-Maven archetype generated POM
-->
<modelVersion>4.0.0</modelVersion>
<groupId>com.mycompany.demo</groupId>
<artifactId>my-gwtapp</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>gwt-maven-archetype-project</name>
<properties>
<!-- convenience to define GWT version in one place -->
<gwt.version>2.0.0</gwt.version>
<!-- tell the compiler we can use 1.5 -->
<maven.compiler.source>1.5</maven.compiler.source>
<maven.compiler.target>1.5</maven.compiler.target>
</properties>
<dependencies>
<!-- GWT dependencies (from central repo) -->
<dependency>
<groupId>com.google.gwt</groupId>
<artifactId>gwt-servlet</artifactId>
<version>${gwt.version}</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>com.google.gwt</groupId>
<artifactId>gwt-user</artifactId>
<version>${gwt.version}</version>
<scope>provided</scope>
</dependency>
<!-- test -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.4</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<outputDirectory>war/WEB-INF/classes</outputDirectory>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>gwt-maven-plugin</artifactId>
<version>1.2</version>
<executions>
<execution>
<goals>
<goal>compile</goal>
<goal>generateAsync</goal>
<goal>test</goal>
</goals>
</execution>
</executions>
<configuration>
<runTarget>com.mycompany.demo.gwt.Application/Application.html</runTarget>
</configuration>
</plugin>
<!--
If you want to use the target/web.xml file mergewebxml produces,
tell the war plugin to use it.
Also, exclude what you want from the final artifact here.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<webXml>target/web.xml</webXml>
<warSourceExcludes>.gwt-tmp/**</warSourceExcludes>
</configuration>
</plugin>
-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.0.2</version>
<configuration>
<warSourceDirectory>war</warSourceDirectory>
<webXml>src/main/webapp/WEB-INF/web.xml</webXml>
</configuration>
</plugin>
</plugins>
</build>
</project>
Ejecute el gwt:eclipse
(utilizando m2eclipse Maven2> compilar ...) para configurar su entorno y crear la configuración de inicio para sus módulos GWT.
Ejecute gwt:compile gwt:run
para compilar y ejecutar un módulo GWT en el modo Hosted de GWT.