I spent a great deal of time getting this to work. I could not find a single source of information on what all the needed dependencies and repositories were, so there was a lot of trial and error involved. This first version is configured for GAE 1.4.0 and GWT 2.1.1, the latest versions at the time of this writing. As these libraries advance I will update the pom.xml with the changes. Even though the title says, Maven 3 it should work just fine with Maven 2 as well. It uses maven-gae-plugin version 0.8.1.

First off is the entire working gae-gwt archetype sample project on GitHub. This project cleanly compiles, enhances for JDO and deploys to GAE.

First thing you need to do to use this starter project is to edit the ~/.m2/settings.xml to point to the home directory for the Google App Engine 1.4.0 SDK. This is required because on Windows 7 I could not get the gae:unpack goal to work, it works fine without this entry on my Centos 5.5 and OSX machine, so you have to put a reference to the GAE SDK home directory, this is the most platform neutral way to do it. Skip this step if you can get the gae:unpack command to work.

So get the starter project, change the name of the directory, change the ${group.id} and ${app.name} in the pom.xml and you should have a good starting point to do GAE development with GWT. Don’t forget to update the GWT application file at src\main\webapp\WEB-INF\appengine-web.xml.

Now here are the details of what makes this work.

Here is what the settings.xml file should look like.

then you can compile and deploy the project with the following command.

$> mvn clean package gae:deploy

Here is what the pom.xml looks like for GAE 1.4.0 and GWT 2.1.1 as of this post.