<project> <property name="appengine-sdk.dir" location="../../appengine-java-sdk" /> <import file="${appengine-sdk.dir}/config/user/ant-macros.xml" /> <path id="project.classpath"> <pathelement path="war/WEB-INF/classes" /> <fileset dir="war/WEB-INF/lib"> <include name="**/*.jar" /> </fileset> <fileset dir="${appengine-sdk.dir}/lib"> <include name="shared/**/*.jar" /> </fileset> </path> <target name="copyjars" description="Copies the App Engine JARs to the WAR."> <copy todir="war/WEB-INF/lib" flatten="true"> <fileset dir="${appengine-sdk.dir}/lib/user"> <include name="**/*.jar" /> </fileset> </copy> </target> <target name="compile" depends="copyjars" description="Compiles Java source and copies other source files to the WAR."> <mkdir dir="war/WEB-INF/classes" /> <copy todir="war/WEB-INF/classes"> <fileset dir="src"> <exclude name="**/*.java" /> </fileset> </copy> <javac srcdir="src" destdir="war/WEB-INF/classes" classpathref="project.classpath" debug="on" includeAntRuntime="false"/> </target> <target name="runserver" depends="compile" description="Starts the development server."> <dev_appserver war="war" /> </target> <target name="update" depends="compile" description="Uploads the application to App Engine."> <appcfg action="update" war="war" /> </target> <target name="rollback" depends="compile" description="Rolls back an interrupted application update."> <appcfg action="rollback" war="war" /> </target> <target name="request_logs" description="Downloads log data from App Engine for the application."> <appcfg action="request_logs" war="war"> <options> <arg value="--num_days=5"/> </options> <args> <arg value="logs.txt"/> </args> </appcfg> </target> </project>