工作需要,用ant 写了一个打包文件,记下来,以免忘记 <?xml version="1.0" encoding="UTF-8"?> <project name="Game" default="all" basedir="."> <!-- Project -wide settings. All directories are relative to the --> <!-- game 的源代码路径 --> <property name="src.dir" value="D:/workpaces/java/JGame/src" /> <!-- engine 的源代码路径 --> <property name="engine.dir" value="D:/workpaces/java/JEngine/src" /> <!-- 外部 jar 库 路径 --> <property name="jar.dir" value="D:/jars" /> <!-- 配置文件路径 --> <property name="config.dir" value="D:/workpaces/java/JGame/conf" /> <property name="main.dir" value="${src.dir}" /> <property name="email.dir" value="${src.dir}/com/email" /> <!-- Build dicectories --> <!-- build main directory --> <property name="build.dir" value="d:/build" /> <!-- engine.classes --> <property name="build.engine.classes" value="${build.dir}/engine" /> <!-- main.classes --> <property name="build.main.classes" value="${build.dir}/main" /> <!--Modules classes --> <property name="build.email.classes" value="${build.dir}/email" /> <!-- run jar path --> <property name="lib.dir" value="${build.dir}/lib" /> <!-- Global settings --> <property name="debug.flag" value="no" /> <property name="java.lib" value="${java.home}/jre/lib/rt.jar" /> <target name="copyfile" depends="prepare"> <!-- copy jar 文件 --> <copy todir="${build.dir}/lib" overwrite="true"> <fileset dir="${jar.dir}"> <include name="*.jar" /> </fileset> </copy> <!-- copy 配置文件 --> <copy todir="${build.dir}/conf" overwrite="true"> <fileset dir="${config.dir}"> <include name="*.xml" /> </fileset> </copy> </target> <path id="classpath"> <fileset dir="${lib.dir}"> <include name="**/*.jar" /> </fileset> </path> <target name="prepare"> <mkdir dir="${build.dir}" /> <mkdir dir="${build.lib}" /> </target> <target name="all" depends="engine,main,modules" /> <!-- creat engine.jar --> <target name="engine" depends="copyfile"> <mkdir dir="${build.engine.classes}" /> <javac destdir="${build.engine.classes}" debug="${debug.flag}" deprecation="on"> <src path="${engine.dir}" /> <classpath refid="classpath" /> </javac> <echo message="Hello there ,I'm show in engine!" /> <jar jarfile="${lib.dir}/JEngine.jar" basedir="${build.engine.classes}" /> <delete dir="${build.engine.classes}" /> </target> <!-- creat main.jar this is a runing jar --> <target name="main"> <mkdir dir="${build.main.classes}" /> <javac destdir="${build.main.classes}" debug="${debug.flag}" deprecation="on"> <src path="${main.dir}" /> <classpath refid="classpath" /> </javac> <echo message="Hello there ,I'm show in main!" /> <manifestclasspath property="main.classpath" jarfile="${build.dir}/**.jar"> <classpath refid="classpath" /> </manifestclasspath> <jar jarfile="${build.dir}/Game.jar" basedir="${build.main.classes}"> <manifest> <attribute name="Main-Class" value="com.core.JTankGame" /> <attribute name="Class-Path" value="${main.classpath}" /> </manifest> </jar> <delete dir="${build.main.classes}" /> </target> <!-- Build the modules such as emailModules ,guildModules --> <target name="modules"> <mkdir dir="${build.email.classes}" /> <javac destdir="${build.email.classes}/" debug="${debug.flag}" deprecation="on"> <src path="${email.dir}" /> <classpath refid="classpath" /> </javac> <jar jarfile="${build.dir}/email.jar" basedir="${build.email.classes}"> </jar> <delete dir="${build.email.classes}" /> </target> </project>