Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Maven GWT 2.0 and Eclipse

Does anyone know of a good guide for creating a project with the new 2.0 release of GWT using maven and eclipse? I am running into a lot of problems getting them to play nicely together.

For what it's worth, I can create a gwt project using the maven eclipse plugin which works fine, but porting it to maven doesn't work (so a guide for this would be great).

Likewise, I can use the maven plugin (gwt-maven-plugin), but when I import it to eclipse (import -> materialize maven projects), it does not get recognised as a GWT project...

Thanks

like image 773
Lehane Avatar asked Dec 12 '09 16:12

Lehane


People also ask

What is GWT plugin in eclipse?

This plugin helps launch GWT development mode for debugging in browsers and/or mobile devices. It includes Maven integration for two of the GWT Maven plugins. And it has WTP server runtime integration, allowing you to sync the GWT Development mode with the server runtimes.

Is Maven installed with Eclipse?

Most Eclipse IDE downloads already include support for the Maven build system. To check, use Help About and check if you can see the Maven logo (with the M2E ) sign.


2 Answers

EDIT: I've updated my answer with additional steps provided by the OP. Credits to the OP for the details.

I just broke my Eclipse setup trying to install the latest version of the Google Plugin for Eclipse (for GWT 2.0) so I can't confirm everything but, let's assume the following prerequisites are fulfilled:

  • Eclipse 3.5
  • Google Plugin for Eclipse (installed from http://dl.google.com/eclipse/plugin/3.5, see instructions)
  • m2eclipse Plugin for Eclipse (installed from http://m2eclipse.sonatype.org/update)

Did you try to:

  1. Create a new project from Eclipse (New > Other... then select Maven Project and choose the gwt-maven-plugin archetype).

  2. Edit the generated pom.xml, update the gwt.version property to 2.0.0 (which has been released in the central repo), add the Codehaus Snapshot repository and set the gwt-maven-plugin version to 1.2-SNAPSHOT (the version 1.2 isn't released in central, this should happen soon) 1.2 (which has been released in central too).

  3. Add a <runTarget> to the gwt-maven-plugin configuration as documented in Using the Google Eclipse Plugin.

  4. Configure the maven-war-plugin as documented in the page mentioned in the previous step.

  5. Manually enable GWT on the project from project preference by setting the Use Google Web Toolkit checkbox This step is unnecessary since you'll be building/running with a Maven run configuration, not the GWT Plugin for Eclipse.

This is how my pom.xml actually looks like:

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

Run the gwt:eclipse goal (using m2eclipse Maven2 > build...) to setup your environment and create the launch configuration for your GWT modules.

Run gwt:compile gwt:run to compile and run a GWT module in the GWT Hosted mode.

like image 118
Pascal Thivent Avatar answered Sep 21 '22 11:09

Pascal Thivent


You can run the following command to generate a Maven GWT project:

webAppCreator -maven -noant -out

For more information:

GWT webappcreator creating a Maven project: the source attachment does not contain the source for the file URLClassPath.class

like image 24
chenglee Avatar answered Sep 23 '22 11:09

chenglee