2009-12-12 17 views
51

¿Alguien sabe de una buena guía para la creación de un proyecto con la nueva versión 2.0 de GWT utilizando Maven y Eclipse? Me estoy enfrentando a muchos problemas para que jueguen bien juntos.Maven GWT 2.0 y Eclipse

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 de Maven (GWT-maven-plugin), pero cuando importarlo a Eclipse (importación -> materializar proyectos de Maven), que no consigue reconocido como un proyecto GWT ...

Gracias

Respuesta

42

EDIT: he actualizado mi respuesta con medidas adicionales proporcionados por el PO. Créditos al OP por los detalles.

acabo de romper mi configuración de Eclipse tratando de instalar la última versión del complemento de Google para Eclipse (por GWT 2.0) así que no puedo confirmar todo pero, supongamos que se cumplen los siguientes requisitos previos:

¿trató de:

  1. Crear un nuevo proyecto de Eclipse (Nuevo> Otro ... luego seleccione Maven Proyecto y elija el GWT-maven-plugin de arquetipo).

  2. Editar la generada pom.xml, actualice la propiedad gwt.version a 2.0.0 (que ha sido lanzado en el repositorio central), añadir el repositorio Codehaus Snapshot y establecer la versión gwt-maven-plugin a 1.2-SNAPSHOT (la versión 1.2 no se libera en central, esto debería suceder pronto) 1.2 (que también se ha lanzado en el centro).

  3. Agregue <runTarget> a la configuración de gwt-maven-plugin como se documenta en Using the Google Eclipse Plugin.

  4. Configurar el experto-guerra-plugin como se documenta en la página mencionada en el paso anterior.

  5. manual permitirá GWT en el proyecto de la preferencia del proyecto mediante el establecimiento de la Uso Google Web Toolkit casilla Este paso es innecesario, ya que será la construcción/marcha con una configuración de ejecución Maven, no el plugin para Eclipse GWT .

Así es como mi pom.xml se ve realmente como:

<?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> 

Ejecutar el gwt:eclipse objetivo (utilizando m2eclipse Maven2> Build ...) para configurar su entorno y crear la configuración de lanzamiento para sus módulos de GWT .

Ejecute gwt:compile gwt:run para compilar y ejecutar un módulo GWT en el modo Hosted de GWT.

+0

Gracias por la respuesta. Hice lo mismo que en su publicación, pero también realizó los pasos adicionales para especificar el SDK de GWT (haga clic con el botón derecho en la configuración del proyecto-> google-> Web Toolkit). Parece que compila, pero cuando ejecuto el proyecto (en eclipse), no obtengo ningún enlace en la pestaña Modo de desarrollo para abrir la aplicación ... ¿Alguna idea de por qué este es el caso? – Lehane

+0

Ok, entonces (finalmente) lo hice funcionar. Aunque todavía parece haber un problema con el modo de desarrollo de eclipse que muestra un enlace a la aplicación. Esencialmente siga la respuesta de Pascal, pero luego siga las instrucciones en http://mojo.codehaus.org/gwt-maven-plugin-1.1/eclipse/google_plugin.html. Luego use "mvn gwt: compile gwt: run" para ver las páginas. @Pascal - Si desea agregar su respuesta para reflejar que debe (1) especificar en eclipse que el proyecto es un gwt, (2) cambiar el pom como se indica en la página anterior, y (3) ejecutar ' mvn gwt: eclipse 'antes de compilar, aceptaré la respuesta. – Lehane

+1

Gracias por los comentarios. He actualizado mi respuesta en consecuencia (lo he probado, todo funciona bien). ¡Gracias de nuevo! –

1

un problema molesto con GWT y m2eclipse:

modo de desarrollo GWT requiere que todos los JAR a ser colocados en WEB-INF/lib. Es especialmente doloroso cuando los programadores uso m2eclipse, que proporciona su propio contenedor ruta de clases de Eclipse.

http://code.google.com/p/google-web-toolkit/issues/detail?id=5693

buenas noticias, la solución está funcionando para mí

0

hilo muy útil

@Pascal: gracias (I donot tener suficientes reputaciones para comentar sobre otros mensajes, de modo que aquí Estoy publicando en 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). Intentado siguiente sin suerte

1) trataron unos arquetipos con eclipse para generar el proyecto

2) modificar el archivo POM (basado en la discusión anterior) para cambiar a versiones 2.5.1

Siguiendo trabajado 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 
Cuestiones relacionadas