gwt-maven-archetypes
gwt-maven-archetypes copied to clipboard
gwt-maven-archetypes
This project contains Maven archetypes for modular GWT projects.
How to use
Generate a project
mvn archetype:generate \
-DarchetypeGroupId=net.ltgt.gwt.archetypes \
-DarchetypeVersion=LATEST \
-DarchetypeArtifactId=<artifactId>
where the available <artifactIds> are:
modular-webappmodular-requestfactorydagger-guice-rf-activities
This should use the latest release from the Central Repository. Alternatively, and/or if you want to hack on / contribute to the archetypes, you can clone and install the project locally:
git clone https://github.com/tbroyer/gwt-maven-archetypes.git
cd gwt-maven-archetypes && mvn clean install
You'll then use the mvn archetype:generate command from above, except for the
-DarchetypeVersion argument which you'll replace with HEAD-SNAPSHOT.
Start the development mode
Change directory to your generated project and issue the following commands:
- In one terminal window:
mvn gwt:codeserver -pl *-client -am - In another terminal window:
mvn jetty:run -pl *-server -am -Denv=dev
Or if you'd rather use Tomcat than Jetty, use mvn tomcat7:run instead of mvn jetty:run.
Note that the -pl and -am are not strictly necessary, they just tell Maven not to
build the client module when you're dealing with the server one, and vice versa.
Profiles
There's a special profile defined in the POM file of server modules:
env-dev, which is used only when developping. It configures the Jetty and Tomcat
plugins and removes the dependency on the client module (declared in the env-prod
profile, active by default.)
To activate the env-dev profile you can provide the -Denv=dev system property, or
use -Penv-dev.
Compatibility
To use variable interpolation in parameters during mvn archetype:generate,
you need at least version 2.2 of the maven-archetype-plugin. Archetypes use
${module.toLowerCase()} as the default value for the module-short-name
parameter, so if you don't use version 2.2 or above of the
maven-archetype-plugin, make sure you provide a value and do not use the
default one for that parameter. You can also make sure you use version 2.2 of
the plugin by using mvn org.apache.maven.plugins:maven-archetype-plugin:2.2:generate instead of mvn archetype:generate. It should be noted that variable interpolation also does
not work in M2Eclipse's wizard, despite using recent versions of Maven thus
(probably) a recent-enough version of the maven-archetype-plugin.