| <?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"> |
| |
| <modelVersion>4.0.0</modelVersion> |
| <groupId>com.google.gwt.sample.mobilewebapp</groupId> |
| <artifactId>MobileWebApp</artifactId> |
| <packaging>war</packaging> |
| <version>1.0-SNAPSHOT</version> |
| <name>com.google.gwt.sample.mobilewebapp.MobileWebApp</name> |
| |
| <properties> |
| <!-- Convenience property to set the GWT version --> |
| <gwtVersion>2.4.0</gwtVersion> |
| |
| <!-- GWT needs at least java 1.6 --> |
| <maven.compiler.source>1.6</maven.compiler.source> |
| <maven.compiler.target>1.6</maven.compiler.target> |
| |
| <!-- GAE properties --> |
| <gae.version>1.5.0.1</gae.version> |
| <gae.home>${user.home}/.m2/repository/com/google/appengine/appengine-java-sdk/${gae.version}/appengine-java-sdk-${gae.version}</gae.home> |
| <gae.application.version>1</gae.application.version> |
| |
| </properties> |
| |
| <repositories> |
| <repository> |
| <id>objectify-appengine</id> |
| <url>http://objectify-appengine.googlecode.com/svn/maven</url> |
| </repository> |
| </repositories> |
| |
| <dependencies> |
| <dependency> |
| <groupId>javax.inject</groupId> |
| <artifactId>javax.inject</artifactId> |
| <version>1</version> |
| </dependency> |
| |
| <dependency> |
| <groupId>junit</groupId> |
| <artifactId>junit</artifactId> |
| <version>4.8.1</version> |
| <scope>test</scope> |
| </dependency> |
| |
| <!-- Google Web Toolkit (GWT) itself --> |
| |
| <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> |
| |
| <!-- GWT projects do not usually need a dependency on gwt-dev, but MobileWebApp |
| contains a GWTC Linker (AppCacheLinker) which in turn depends on internals |
| of the GWT compiler. |
| |
| This dependency has a scope of "provided" so that it only gets used as a |
| compiler dependecy. The Maven GWT Plugin does not seem to honor this scoping, |
| though. For that reason we explicitly remove gwt-dev-*.jar from the produced |
| artifacts later on. |
| --> |
| <dependency> |
| <groupId>com.google.gwt</groupId> |
| <artifactId>gwt-dev</artifactId> |
| <version>${gwtVersion}</version> |
| <scope>provided</scope> |
| </dependency> |
| |
| <!-- GWT RequestFactory will use JSR 303 javax.validation if you let it --> |
| <dependency> |
| <groupId>javax.validation</groupId> |
| <artifactId>validation-api</artifactId> |
| <version>1.0.0.GA</version> |
| <classifier>sources</classifier> |
| </dependency> |
| <dependency> |
| <groupId>org.hibernate</groupId> |
| <artifactId>hibernate-validator</artifactId> |
| <version>4.0.2.GA</version> |
| <exclusions> |
| <exclusion> |
| <groupId>javax.xml.bind</groupId> |
| <artifactId>jaxb-api</artifactId> |
| </exclusion> |
| <exclusion> |
| <groupId>com.sun.xml.bind</groupId> |
| <artifactId>jaxb-impl</artifactId> |
| </exclusion> |
| </exclusions> |
| </dependency> |
| |
| <!-- GWT RequestFactory requires org.json --> |
| <!-- TODO: can we declare the json and validation dependencies somewhere for the world to pick up, |
| rather than requiring everyone to know about them? --> |
| <dependency> |
| <groupId>org.json</groupId> |
| <artifactId>json</artifactId> |
| <version>20090211</version> |
| </dependency> |
| |
| <!-- Google App Engine (GAE) itself --> |
| |
| <dependency> |
| <groupId>com.google.appengine</groupId> |
| <artifactId>appengine-api-1.0-sdk</artifactId> |
| <version>${gae.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>com.google.appengine</groupId> |
| <artifactId>appengine-testing</artifactId> |
| <version>${gae.version}</version> |
| <scope>test</scope> |
| </dependency> |
| <dependency> |
| <groupId>com.google.appengine</groupId> |
| <artifactId>appengine-api-stubs</artifactId> |
| <version>${gae.version}</version> |
| <scope>test</scope> |
| </dependency> |
| <dependency> |
| <groupId>com.google.appengine</groupId> |
| <artifactId>appengine-api-labs</artifactId> |
| <version>${gae.version}</version> |
| </dependency> |
| <!-- uncomment for testing <dependency> <groupId>com.google.appengine</groupId> |
| <artifactId>appengine-local-runtime</artifactId> <version>${gae.version}</version> |
| <scope>system</scope> <systemPath>${gae.home}/lib/impl/appengine-local-runtime.jar</systemPath> |
| </dependency> <dependency> <groupId>com.google.appengine</groupId> <artifactId>appengine-tools-api</artifactId> |
| <version>${gae.version}</version> <scope>system</scope> <systemPath>${gae.home}/lib/appengine-tools-api.jar</systemPath> |
| </dependency> --> |
| |
| <!-- Objectify for persistence. It uses the stock javax.persistence annotations --> |
| |
| <dependency> |
| <groupId>com.googlecode.objectify</groupId> |
| <artifactId>objectify</artifactId> |
| <version>3.0</version> |
| </dependency> |
| <dependency> |
| <groupId>javax.persistence</groupId> |
| <artifactId>persistence-api</artifactId> |
| <version>1.0</version> |
| </dependency> |
| |
| <!-- GIN and Guice for IoC / DI --> |
| |
| <dependency> |
| <groupId>com.google.inject</groupId> |
| <artifactId>guice</artifactId> |
| <version>2.0</version> |
| </dependency> |
| <dependency> |
| <groupId>com.google.gwt.inject</groupId> |
| <artifactId>gin</artifactId> |
| <version>1.0</version> |
| </dependency> |
| |
| <!-- GAE does not seem to have these as dependencies, but |
| running locally (i.e. 'mvn gae:run') seems to |
| require them. |
| --> |
| <dependency> |
| <groupId>org.slf4j</groupId> |
| <artifactId>slf4j-log4j12</artifactId> |
| <version>1.6.1</version> |
| </dependency> |
| <dependency> |
| <groupId>org.slf4j</groupId> |
| <artifactId>slf4j-api</artifactId> |
| <version>1.6.1</version> |
| </dependency> |
| </dependencies> |
| |
| <build> |
| <!-- Generate compiled stuff in the folder used for developing mode --> |
| <outputDirectory>target/www/WEB-INF/classes</outputDirectory> |
| |
| <plugins> |
| <!-- GWT Maven Plugin--> |
| <plugin> |
| <groupId>org.codehaus.mojo</groupId> |
| <artifactId>gwt-maven-plugin</artifactId> |
| <version>2.2.0</version> |
| <dependencies> |
| <dependency> |
| <groupId>com.google.gwt</groupId> |
| <artifactId>gwt-user</artifactId> |
| <version>${gwtVersion}</version> |
| </dependency> |
| <dependency> |
| <groupId>com.google.gwt</groupId> |
| <artifactId>gwt-dev</artifactId> |
| <version>${gwtVersion}</version> |
| </dependency> |
| <dependency> |
| <groupId>com.google.gwt</groupId> |
| <artifactId>gwt-servlet</artifactId> |
| <version>${gwtVersion}</version> |
| </dependency> |
| </dependencies> |
| <!-- JS is only needed in the package phase, this speeds up testing --> |
| <executions> |
| <execution> |
| <phase>prepare-package</phase> |
| <goals> |
| <goal>compile</goal> |
| </goals> |
| </execution> |
| </executions> |
| <!-- Plugin configuration. There are many available options, |
| see gwt-maven-plugin documentation at codehaus.org --> |
| <configuration> |
| <!-- URL that should be automatically opened in the GWT shell (gwt:run). --> |
| <runTarget>MobileWebApp.html</runTarget> |
| <!-- Location of the develop-mode web application structure (gwt:run). --> |
| <hostedWebapp>target/www</hostedWebapp> |
| <!-- Ask GWT to create the Story of Your Compile (SOYC) (gwt:compile) --> |
| <compileReport>true</compileReport> |
| <module>com.google.gwt.sample.mobilewebapp.MobileWebApp</module> |
| |
| <appEngineVersion>${gae.version}</appEngineVersion> |
| <appEngineHome>${gae.home}</appEngineHome> |
| <logLevel>INFO</logLevel> |
| <style>${gwt.style}</style> |
| |
| <hostedWebapp>${project.build.directory}/${project.build.finalName}</hostedWebapp> |
| <server>com.google.appengine.tools.development.gwt.AppEngineLauncher</server> |
| <copyWebapp>true</copyWebapp> |
| </configuration> |
| </plugin> |
| |
| <!-- Google App Engine plugin --> |
| <plugin> |
| <groupId>net.kindleit</groupId> |
| <artifactId>maven-gae-plugin</artifactId> |
| <version>0.8.0</version> |
| <executions> |
| <execution> |
| <id /> |
| <phase>validate</phase> |
| <goals> |
| <goal>unpack</goal> |
| </goals> |
| </execution> |
| </executions> |
| </plugin> |
| |
| <!-- Add source folders to test classpath in order to run gwt-tests as normal junit-tests --> |
| <plugin> |
| <artifactId>maven-surefire-plugin</artifactId> |
| <version>2.5</version> |
| <configuration> |
| <additionalClasspathElements> |
| <additionalClasspathElement>${project.build.sourceDirectory}</additionalClasspathElement> |
| <additionalClasspathElement>${project.build.testSourceDirectory}</additionalClasspathElement> |
| </additionalClasspathElements> |
| <useManifestOnlyJar>false</useManifestOnlyJar> |
| <forkMode>always</forkMode> |
| |
| <!-- Folder for generated testing stuff --> |
| <systemProperties> |
| <property> |
| <name>gwt.args</name> |
| <value>-out target/www</value> |
| </property> |
| </systemProperties> |
| </configuration> |
| </plugin> |
| |
| <!-- Run the RequestFactory ValidationTool --> |
| <plugin> |
| <groupId>org.codehaus.mojo</groupId> |
| <artifactId>exec-maven-plugin</artifactId> |
| <version>1.2</version> |
| <executions> |
| <execution> |
| <phase>process-classes</phase> |
| <configuration> |
| <id>VerifyRequestFactoryInterfaces</id> |
| <executable>java</executable> |
| <arguments> |
| <argument>-cp</argument> |
| <classpath /> |
| <argument>com.google.web.bindery.requestfactory.apt.ValidationTool</argument> |
| <argument>${project.build.outputDirectory}</argument> |
| <argument>com.google.gwt.sample.mobilewebapp.shared.MobileWebAppRequestFactory</argument> |
| </arguments> |
| </configuration> |
| <goals> |
| <goal>exec</goal> |
| </goals> |
| </execution> |
| </executions> |
| </plugin> |
| |
| <!-- Copy static web files before executing gwt:run --> |
| <plugin> |
| <artifactId>maven-resources-plugin</artifactId> |
| <version>2.4.2</version> |
| <executions> |
| <execution> |
| <phase>compile</phase> |
| <goals> |
| <goal>copy-resources</goal> |
| </goals> |
| <configuration> |
| <outputDirectory>target/www</outputDirectory> |
| <resources> |
| <resource> |
| <directory>src/main/webapp</directory> |
| </resource> |
| </resources> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| |
| <plugin> |
| <artifactId>maven-eclipse-plugin</artifactId> |
| <version>2.8</version> |
| <configuration> |
| <downloadSources>true</downloadSources> |
| <downloadJavadocs>false</downloadJavadocs> |
| <wtpversion>2.0</wtpversion> |
| <additionalBuildcommands> |
| <buildCommand> |
| <name>com.google.gwt.eclipse.core.gwtProjectValidator</name> |
| </buildCommand> |
| </additionalBuildcommands> |
| <additionalProjectnatures> |
| <projectnature>com.google.gwt.eclipse.core.gwtNature</projectnature> |
| <projectnature>com.google.appengine.eclipse.core.gaeNature</projectnature> |
| </additionalProjectnatures> |
| </configuration> |
| </plugin> |
| |
| <plugin> |
| <!-- Don't deploy gwt-user nor gwt-dev jars to GAE. |
| These jars are needed to compile the |
| project and for DevMode, but not in AppEngine. |
| --> |
| <artifactId>maven-clean-plugin</artifactId> |
| <version>2.3</version> |
| <executions> |
| <execution> |
| <id>default-clean</id> |
| <phase>clean</phase> |
| <goals> |
| <goal>clean</goal> |
| </goals> |
| </execution> |
| <execution> |
| <id>remove-gwt-dev-jar</id> |
| <phase>process-classes</phase> |
| <goals> |
| <goal>clean</goal> |
| </goals> |
| <configuration> |
| <excludeDefaultDirectories>true</excludeDefaultDirectories> |
| <filesets> |
| <fileset> |
| <directory>${project.build.directory}/${project.build.finalName}/WEB-INF/lib</directory> |
| <includes> |
| <include>gwt-dev*jar</include> |
| <include>gwt-user*jar</include> |
| </includes> |
| </fileset> |
| </filesets> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| </plugins> |
| </build> |
| </project> |