Recientemente convertí mi aplicación web GWT (GWT 2.4.0) a un proyecto de maven.
Estoy usando maven 2.2.1, gwt-maven plugin (2.4.0), Eclipse Indigo (3.7) y el plugin m2eclipse.Maven Project Builder se invoca cada vez que cambio un archivo fuente (GWT)
Las dependencias y la configuración general parecen estar bien ya que la aplicación web se compila sin ningún problema y también funciona en modo de producción.
Lo mismo se aplica al modo alojado.
Sin embargo, tengo un comportamiento extraño: cuando cambio una sola línea en un archivo fuente Java/GWT, se invoca Maven Project Builder
y estos pasos son muy largos (alrededor de 10 segundos) y el eclipse a veces se vuelve inutilizable durante este tiempo.
¿Es este un comportamiento normal de m2eclipse?
Y si lo es, ¿hay alguna forma de acelerarlo?
Nota: tuve que configurar la extensión del ciclo de vida de m2eclipse. Aquí es importante la sección del archivo POM:
<build>
<!-- Generate compiled stuff in the folder used for developing mode -->
<outputDirectory>${webappDirectory}/WEB-INF/classes</outputDirectory>
<plugins>
<!-- GWT Maven Plugin -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>gwt-maven-plugin</artifactId>
<version>2.4.0</version>
<executions>
<execution>
<goals>
<goal>compile</goal>
<goal>test</goal>
</goals>
</execution>
</executions>
<!-- Plugin configuration. There are many available options, see gwt-maven-plugin
documentation at codehaus.org -->
<configuration>
<runTarget>index.html</runTarget>
<hostedWebapp>${webappDirectory}</hostedWebapp>
<i18nMessagesBundle>com.gmi.nordborglab.testapp.client.Messages</i18nMessagesBundle>
</configuration>
</plugin>
<!-- Copy static web files before executing gwt:run -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.1.1</version>
<executions>
<execution>
<phase>compile</phase>
<goals>
<goal>exploded</goal>
</goals>
</execution>
</executions>
<configuration>
<webappDirectory>${webappDirectory}</webappDirectory>
</configuration>
</plugin>
</plugins>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.eclipse.m2e</groupId>
<artifactId>lifecycle-mapping</artifactId>
<version>1.0.0</version>
<configuration>
<lifecycleMappingMetadata>
<pluginExecutions>
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.codehaus.mojo</groupId>
<artifactId>gwt-maven-plugin</artifactId>
<versionRange>[2.4.0,)</versionRange>
<goals>
<goal>resources</goal>
<goal>compile</goal>
</goals>
</pluginExecutionFilter>
<action>
<execute />
</action>
</pluginExecution>
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<versionRange>[2.1.1,)</versionRange>
<goals>
<goal>exploded</goal>
</goals>
</pluginExecutionFilter>
<action>
<execute />
</action>
</pluginExecution>
</pluginExecutions>
</lifecycleMappingMetadata>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
Esa es una idea interesante. ¿Cómo se desencadena la construcción completa? Usando pom.xml> ¿Ejecutar como? –
@MartinKersten: Sí, si recuerdo correctamente Eclipse. No lo he usado en más de 2 años :-P –