I managed to setup maven descriptor so that I can build and enhance
classes.
I execute "mvn clean package" when I want to build it and it works
just fine.
I add the following pieces to my pom.xml file at the appropriate
locations:
<properties>
<appengine.version>1.2.2</appengine.version>
<appengine.sdk.dir>[path-to-appengine-SDK]</appengine.sdk.dir>
</properties>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.3</version>
<executions>
<execution>
<phase>process-classes</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<tasks>
<property file="maven-
build.properties"/>
<property
name="appengine.tools.classpath"
location="$
{appengine.sdk.dir}/lib/appengine-tools-api.jar"/>
<path id="build.classpath">
<fileset dir="$
{maven.repo.local}">
<include name="junit/junit/4.5/
junit-4.5.jar"/>
<include name="javax/servlet/
servlet-api/2.5/servlet-api-2.5.jar"/>
<include name="org/
springframework/org.springframework.core/3.0.0.M3/
org.springframework.core-3.0.0.M3.jar"/>
<include name="org/apache/
commons/com.springsource.org.apache.commons.logging/1.1.1/
com.springsource.org.apache.commons.logging-1.1.1.jar"/>
<include name="org/
springframework/org.springframework.beans/3.0.0.M3/
org.springframework.beans-3.0.0.M3.jar"/>
<include name="org/
springframework/org.springframework.context/3.0.0.M3/
org.springframework.context-3.0.0.M3.jar"/>
<include name="org/aopalliance/
com.springsource.org.aopalliance/1.0.0/
com.springsource.org.aopalliance-1.0.0.jar"/>
<include name="org/
springframework/org.springframework.asm/3.0.0.M3/
org.springframework.asm-3.0.0.M3.jar"/>
<include name="org/
springframework/org.springframework.aop/3.0.0.M3/
org.springframework.aop-3.0.0.M3.jar"/>
<include name="org/
springframework/org.springframework.expression/3.0.0.M3/
org.springframework.expression-3.0.0.M3.jar"/>
<include name="org/antlr/
com.springsource.org.antlr/3.0.1/com.springsource.org.antlr-3.0.1.jar"/
>
<include name="org/
springframework/org.springframework.transaction/3.0.0.M3/
org.springframework.transaction-3.0.0.M3.jar"/>
<include name="org/
springframework/org.springframework.web.servlet/3.0.0.M3/
org.springframework.web.servlet-3.0.0.M3.jar"/>
<include name="org/
springframework/org.springframework.web/3.0.0.M3/
org.springframework.web-3.0.0.M3.jar"/>
<include name="org/
springframework/org.springframework.oxm/3.0.0.M3/
org.springframework.oxm-3.0.0.M3.jar"/>
<include name="org/
springframework/org.springframework.test/3.0.0.M3/
org.springframework.test-3.0.0.M3.jar"/>
<include name="com/google/
appengine/appengine-api-1.0-sdk/1.2.2/appengine-api-1.0-sdk-1.2.2.jar"/
>
<include name="com/google/
appengine/appengine-api-1.0-stubs/1.2.2/appengine-api-1.0-
stubs-1.2.2.jar"/>
<include name="com/google/
appengine/appengine-api-1.0-runtime/1.2.2/appengine-api-1.0-
runtime-1.2.2.jar"/>
<include name="com/google/
appengine/appengine-tools-sdk/1.2.2/appengine-tools-sdk-1.2.2.jar"/>
<include name="com/google/
appengine/orm/datanucleus-appengine/1.0.2/datanucleus-
appengine-1.0.2.jar"/>
<include name="org/datanucleus/
datanucleus-core/1.1.4/datanucleus-core-1.1.4.jar"/>
<include name="javax/transaction/
transaction-api/1.1/transaction-api-1.1.jar"/>
<include name="org/apache/
geronimo/specs/geronimo-jta_1.1_spec/1.1.1/geronimo-
jta_1.1_spec-1.1.1.jar"/>
<include name="javax/jdo/jdo2-
api/2.3-ea/jdo2-api-2.3-ea.jar"/>
<include name="org/datanucleus/
datanucleus-jpa/1.1.4/datanucleus-jpa-1.1.4.jar"/>
<include name="org/apache/
geronimo/specs/geronimo-jpa_3.0_spec/1.1.1/geronimo-
jpa_3.0_spec-1.1.1.jar"/>
<include name="javax/servlet/
jstl/1.1.2/jstl-1.1.2.jar"/>
<include name="taglibs/standard/
1.1.2/standard-1.1.2.jar"/>
<include name="commons-lang/
commons-lang/2.4/commons-lang-2.4.jar"/>
<include name="commons-io/
commons-io/1.4/commons-io-1.4.jar"/>
<include name="genjava/gj-csv/
1.0/gj-csv-1.0.jar"/>
<include name="displaytag/
displaytag/1.2/displaytag-1.2.jar"/>
<include name="commons-
collections/commons-collections/3.1/commons-collections-3.1.jar"/>
<include name="com/lowagie/itext/
1.3/itext-1.3.jar"/>
<include name="commons-beanutils/
commons-beanutils/1.7.0/commons-beanutils-1.7.0.jar"/>
<include name="org/slf4j/jcl104-
over-slf4j/1.4.2/jcl104-over-slf4j-1.4.2.jar"/>
<include name="org/slf4j/slf4j-
log4j12/1.4.2/slf4j-log4j12-1.4.2.jar"/>
<include name="org/slf4j/slf4j-
api/1.4.2/slf4j-api-1.4.2.jar"/>
<include name="log4j/log4j/
1.2.13/log4j-1.2.13.jar"/>
<include name="xalan/xalan/2.7.1/
xalan-2.7.1.jar"/>
<include name="xalan/serializer/
2.7.1/serializer-2.7.1.jar"/>
<include name="xml-apis/xml-apis/
1.3.04/xml-apis-1.3.04.jar"/>
</fileset>
</path>
<taskdef name="enhance"
classpath="$
{appengine.tools.classpath}"
classname="com.google.appengine.tools.enhancer.EnhancerTask"/>
<enhance failonerror="true">
<classpath>
<pathelement path="$
{appengine.tools.classpath}"/>
<pathelement path="$
{maven.build.outputDir}"/>
<path refid="build.classpath"/
>
</classpath>
<fileset dir="$
{maven.build.outputDir}" includes="**/*.class"/>
</enhance>
</tasks>
</configuration>
</execution>
</executions>
</plugin>
build.classpath definition there has been copied from maven-build.xml
generated with "mvn ant:ant". Will probably have to be different for
you environment.
AppEngine 1.2.2 libraries can be included like this:
<dependency>
<groupId>com.google.appengine</groupId>
<artifactId>appengine-api-1.0-sdk</artifactId>
<version>${appengine.version}</version>
</dependency>
<dependency>
<groupId>com.google.appengine</groupId>
<artifactId>appengine-api-1.0-stubs</artifactId>
<version>${appengine.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.google.appengine</groupId>
<artifactId>appengine-api-1.0-runtime</artifactId>
<version>${appengine.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.google.appengine</groupId>
<artifactId>appengine-tools-sdk</artifactId>
<version>${appengine.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.google.appengine.orm</groupId>
<artifactId>datanucleus-appengine</artifactId>
<version>1.0.2</version>
</dependency>
<dependency>
<groupId>org.datanucleus</groupId>
<artifactId>datanucleus-jpa</artifactId>
<version>1.1.4</version>
</dependency>
<dependency>
<groupId>org.apache.geronimo.specs</groupId>
<artifactId>geronimo-jpa_3.0_spec</artifactId>
<version>1.1.1</version>
</dependency>
Google AppEngine 1.2.2 libraries can be found at mvnsearch.org, so the
list of repositories needs to include this:
<repository>
<id>mvnsearch-repo</id>
<name>MVNSearch Maven Repository</name>
<url>http://www.mvnsearch.org/maven2/</url>
</repository>
Unit tests still don't run for me within Maven.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Google App Engine for Java" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/google-appengine-java?hl=en
-~----------~----~----~----~------~----~------~--~---