i followed the instruction of gwt-maven-plugin, generated then imported the project below,
1) Generate the project
$ mvn archetype:generate \
-DarchetypeGroupId=org.codehaus.mojo \
-DarchetypeArtifactId=gwt-maven-plugin \
-DarchetypeVersion=2.5.0
...
Define value for property 'groupId': : org.codehaus.mojo
Define value for property 'artifactId': : gwt-maven-plugin-sample
Define value for property 'version': 1.0-SNAPSHOT: :
Define value for property 'package': org.codehaus.mojo: :
Define value for property 'module': : Sample
...
2) Check the generated POM
<?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">
<!-- POM file generated with GWT webAppCreator -->
<modelVersion>4.0.0</modelVersion>
<groupId>org.codehaus.mojo</groupId>
<artifactId>gwt-maven-plugin-sample</artifactId>
<packaging>war</packaging>
<version>1.0-SNAPSHOT</version>
<name>GWT Maven Archetype</name>
<properties>
<!-- Convenience property to set the GWT version -->
<gwtVersion>2.5.0</gwtVersion>
<!-- GWT needs at least java 1.5 -->
<webappDirectory>${project.build.directory}/${project.build.finalName}</webappDirectory>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>com.google.gwt</groupId>
<artifactId>gwt-servlet</artifactId>
<version>${gwtVersion}</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>com.google.gwt</groupId>
<artifactId>gwt-user</artifactId>
<version>${gwtVersion}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.7</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>1.0.0.GA</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>1.0.0.GA</version>
<classifier>sources</classifier>
<scope>test</scope>
</dependency>
</dependencies>
<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.5.0</version>
<executions>
<execution>
<goals>
<goal>compile</goal>
<goal>test</goal>
<goal>i18n</goal>
<goal>generateAsync</goal>
</goals>
</execution>
</executions>
<!-- Plugin configuration. There are many available options, see
gwt-maven-plugin documentation at codehaus.org -->
<configuration>
<runTarget>Sample.html</runTarget>
<hostedWebapp>${webappDirectory}</hostedWebapp>
<i18nMessagesBundle>org.codehaus.mojo.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>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.5</source>
<target>1.5</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
3) Check the generated project
gwt-maven-plugin-sample/
├── .classpath
├── pom.xml
├── .project
├── SampleTest-dev.launch
├── SampleTest-prod.launch
├── .settings
│ ├── com.google.appengine.eclipse.core.prefs
│ ├── com.google.gdt.eclipse.core.prefs
│ ├── com.google.gwt.eclipse.core.prefs
│ ├── .jsdtscope
│ ├── org.eclipse.jdt.core.prefs
│ ├── org.eclipse.wst.common.component
│ ├── org.eclipse.wst.common.project.facet.core.xml
│ ├── org.eclipse.wst.jsdt.ui.superType.container
│ └── org.maven.ide.eclipse.prefs
├── src
│ ├── main
│ │ ├── java
│ │ │ └── org
│ │ │ └── codehaus
│ │ │ └── mojo
│ │ │ ├── client
│ │ │ │ ├── GreetingService.java
│ │ │ │ └── Sample.java
│ │ │ ├── server
│ │ │ │ └── GreetingServiceImpl.java
│ │ │ └── shared
│ │ │ └── FieldVerifier.java
│ │ ├── resources
│ │ │ └── org
│ │ │ └── codehaus
│ │ │ └── mojo
│ │ │ ├── client
│ │ │ │ ├── Messages_fr.properties
│ │ │ │ └── Messages.properties
│ │ │ └── Sample.gwt.xml
│ │ └── webapp
│ │ ├── Sample.css
│ │ ├── Sample.html
│ │ └── WEB-INF
│ │ └── web.xml
│ └── test
│ ├── java
│ │ └── org
│ │ └── codehaus
│ │ └── mojo
│ │ └── client
│ │ └── GwtTestSample.java
│ └── resources
│ └── org
│ └── codehaus
│ └── mojo
│ └── SampleJUnit.gwt.xml
└── target
└── generated-sources
└── gwt
└── org
└── codehaus
└── mojo
33 directories, 26 files
4) On Eclipse, choose "Import Existing Project to Workspace"
5) According to the instruction of gwt-maven-plugin, the imported project should have resulted in the project structure similar to below,
In the end by our comparing 4) to 5), the problem in sight seems that no maven dependencies were added by the import at all, in other words, the generated project was not validated as a maven project. So, what's wrong with the steps above and the configuration below?
gwt-maven-plugin 2.5.0
m2e 1.2.0.20120903-1050
eclipse 3.7.2
maven 3.0.4
@EDIT
Ran "mvn gwt:run" successfully, but failed to launch DevMode
by GWT Eclipse Plugin
,
@EDIT 2
Referring to the link from @Sachin Shekhar R
, i've looked into the official GWT Wiki: working with maven, followed the instruction and tested DynaTable RequestFactory sample. Great, it does work!
Unfortunately, the Wiki echoes that gwt-maven-plugin
does have issues with the archetype
in use.