About 2 years ago, started a from-scratch GAE/GWT project in Eclipse. Have
been using Eclipse to build, test (GWT Classic DevMode), and deploy.
With the new live breakpoints, push to deploy, etc., plus dependency
management, I decided to put converting the project on the table.
I've gotten the following done:
- Ran m2eclipse conversion.
- Moved source into Maven-standard directory structure.
- Maven-available dependencies removed from lib/ folder and added to
Maven.
- Maven Build and Maven Unit Test both succeed.
- Ran mvn eclipse:eclipse to re-build config, and then re-added GAE SDK
to the Java Build Path.
I'm still having a few issues, though...
1. Debugging/running locally causes java.lang.NoClassDefFoundError:
javax/mail/MessagingException in the console output.
1. I have tried with javax.mail dependency included, but I'm 90% sure
since it is in the GAE SDK I should not have it explicitly listed.
2. Once service is running, I get a 404 for both the main application
and the admin console. Presuming this is related to the above, but not
100% sure.
3. There's no good comparison/how-to for this that includes things like
.gitignore suggestions. What do I need to have in the repo for it to work
properly?
4. We use a secondary AppEngine instance for testing "live" before
deploying to production. Is there a way to set the branch for
push-to-deploy so we aren't merging back to master in advance of release?
5. Is there a reason that GWT 2.6.1 is available through Maven, but not
through the Google Eclipse repo?
1. Also (and knowing this is GAE list, not GWT), where do GWT
.properties files go for Maven? Anything I need to convert there?
Sorry for some questions that seem a little basic, but this is my first
dance with Maven, and I'm flying solo on this project. (My PM is not a
developer by trade, and my intern doesn't know Maven either.) I liked that
using the Eclipse builder "just worked", but we had issues every time a new
GAE SDK came out getting classpaths on individual machines to cooperate and
not duplicate jars in lib/.
Trimmed pom.xml:
<properties>
<appengine.target.version>1.9.15</appengine.target.version>
<gwt.target.version>2.6.1</gwt.target.version>
</properties>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-eclipse-plugin</artifactId>
<version>2.9</version>
<configuration>
<downloadSources>true</downloadSources>
<downloadJavadocs>true</downloadJavadocs>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>gwt-maven-plugin</artifactId>
<version>2.6.1</version>
<executions>
<execution>
<goals>
<goal>compile</goal>
<goal>generateAsync</goal>
<goal>test</goal>
</goals>
</execution>
</executions>
<configuration>
<runTarget>index.html</runTarget>
</configuration>
</plugin>
<plugin>
<groupId>com.google.appengine</groupId>
<artifactId>appengine-maven-plugin</artifactId>
<version>${appengine.target.version}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.3</version>
<configuration>
<archiveClasses>true</archiveClasses>
<webResources>
<!-- in order to interpolate version from pom into
appengine-web.xml -->
<resource>
<directory>${basedir}/src/main/webapp/WEB-INF</directory>
<filtering>true</filtering>
<targetPath>WEB-INF</targetPath>
</resource>
</webResources>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>com.google.gwt</groupId>
<artifactId>gwt-servlet</artifactId>
<version>${gwt.target.version}</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>com.google.gwt</groupId>
<artifactId>gwt-user</artifactId>
<version>${gwt.target.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.google.appengine</groupId>
<artifactId>appengine-api-1.0-sdk</artifactId>
<version>${appengine.target.version}</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>com.googlecode.objectify</groupId>
<artifactId>objectify</artifactId>
<version>4.1.3</version>
</dependency>
<dependency>
<groupId>com.googlecode.objectify</groupId>
<artifactId>objectify-gwt</artifactId>
<version>1.2.1</version>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>18.0</version>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava-gwt</artifactId>
<version>18.0</version>
</dependency>
[...]
<!-- <dependency>
<groupId>javax.mail</groupId>
<artifactId>javax.mail-api</artifactId>
<version>1.4.7</version>
</dependency> -->
<!-- Unit Test Dependencies -->
<dependency>
<groupId>com.google.appengine</groupId>
<artifactId>appengine-testing</artifactId>
<version>${appengine.target.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.google.appengine</groupId>
<artifactId>appengine-api-stubs</artifactId>
<version>${appengine.target.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
<version>4.11</version>
</dependency>
</dependencies>
--
You received this message because you are subscribed to the Google Groups
"Google App Engine" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/google-appengine.
For more options, visit https://groups.google.com/d/optout.