0

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"

imported eclipse project

5) According to the instruction of gwt-maven-plugin, the imported project should have resulted in the project structure similar to below,

expected eclipse project

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,

gwt devmode error

@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.

7
  • Can you post what error you are facing along with error log or screenshot. Example - Maven compilation failed or devmode launch failed? Commented Nov 30, 2012 at 10:31
  • Thx, pls check the error above. The obvious problem to me is no maven dependencies added by the import at all. Commented Nov 30, 2012 at 10:44
  • Well as the error states, is the gwt-servlet.jar on the classpath? Also, GWT-2.0.4 is ancient, you should upgrade to 2.5. Commented Nov 30, 2012 at 10:47
  • @Anders R. Bystrup, dependency management is supposed the job of gwt-maven-plugin and m2e. Commented Nov 30, 2012 at 10:51
  • I know that, still you're getting that error, right? In any case, you have a dep on 2.0.4 and your GWT plugin version is 2.5.0 - that's where you should look. Is the project actually a GWT product in Eclipse's eyes? Commented Nov 30, 2012 at 10:58

1 Answer 1

1

gwt-maven-plugin 2.5.0 works best with GWT 2.5.0. The statement Ran "mvn gwt:run" successfully, but failed to launch DevMode by GWT Eclipse Plugin is a bit confusing.

I also noticed that in your case -

1) The generated pom file in indicates 2.5.0 and eclipse screenshot indicates 2.0.4. This might because your GPE is pointing to GWT 2.0.4 and overriding the pom files directive.

2) If you are using maven gwt:run then GWT Eclipse Plugin is irrelevant. The dev mode gets launched either by

  • a) mvn gwt:run
  • b) by GWT Eclipse Plugin when you right click on project and select Debug As -> Web Application

3) Maven dependencies are being shown in the screenshot you have shared. Can you expand it and verify which jars are being picked up.

Edit - You can try some additional troubleshooting tips from with http://code.google.com/p/google-web-toolkit/wiki/WorkingWithMaven

My guess would be the configuration @ Project properties, Google > Web Application, the "This project has a WAR directory"

Sign up to request clarification or add additional context in comments.

2 Comments

Sorry for something obscure. The pointer to GWT 2.0.4 from the picture on 5) above is not the result of my import (it's on 4), but the outdated description by gwt-maven-plugin. The correct GWT version is 2.5.0 as you guess. mvn gwt:run works via CLI, but Run as -> Web App fails via GPE. i need the latter to work, too.
Thanks for the link to this GWT Wiki.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.