<?xml version="1.0" encoding="GBK"?>
<!-- =============================================================== --> <!-- ANT buildfile快速参考 --> <!-- ALin 2006-12-30 14:20 --> <!-- =============================================================== --> <project default="help" basedir="." name="Cabin"> <!-- project的描述,可以省略 --> <description>Ant Buildfile参考</description> <!-- =========================================================== --> <!-- 项目相关的属性设置 --> <!-- =========================================================== --> <property environment="env"></property><!-- 引用系统环境变量 --> <property name="app.nane" value="Cabin"></property> <property name="app.home" value="."></property> <property name="src.dir" value="${app.home}/src"></property> <property name="lib.dir" value="${app.home}/lib"></property> <property name="build.dir" value="${app.home}/build"></property> <property name="build.classes" value="${build.dir}/classes"/> <property name="deploy.dir" value="${app.home}/hello"/> <property name="deploy.classes" value="${deploy.dir}/WEB-INF/classes"/> <property name="TOMCAT_HOME" value="C:/Tomcat 5.5"/> <property name="Log4j.conf" value="log4j.configuration"></property> <property name="Log4j.file" value="log4j.properties"></property> <property name="JWSDP.HOME" value="C:/Sun/jwsdp-2.0"></property> <property name="JAXB.HOME" value="${JWSDP.HOME}/jaxb"></property> <property name="dtd.file1" value="datasource.dtd"></property> <property name="dtd.file2" value="bookList.dtd"></property> <property name="jboss.jar.dir" value="D:/Program Files/jboss-4.0.2/client"></property> <!-- =========================================================== --> <!-- 编译和运行的classpath --> <!-- =========================================================== --> <path id="compile.classpath"> <!-- The object files for this application --> <pathelement path="${build.classes}"/> <!-- 包括目录下的所有.jar和.zip文件 --> <fileset dir="${TOMCAT_HOME}/common/lib"> <!-- lib的目录 --> <include name="*.jar"/> <!-- 包括jar文件 --> <include name="*.zip"/> <exclude name="*.properties"/> <!-- 不包括properties文件 --> </fileset> <!-- 可以指定具体的某个.jar文件 --> <fileset dir="${jboss.jar.dir}"> <include name="jbossall-client.jar"/> <include name="jnp-client.jar"/> </fileset> <!-- 可以使用location代理path --> <pathelement path="${TOMCAT_HOME}/common/classes"/> </path> <!-- 创建目录,如果已经存在,则跳过 --> <target name="prepare"> <mkdir dir="${src.dir}/META-INF"/> <mkdir dir="${bin.dir}/META-INF"/> <mkdir dir="${lib.dir}"/> </target> <!-- =========================================================== --> <!-- target设置 --> <!-- =========================================================== --> <target name="compile" depends="prepare"> <javac srcdir="${src.dir}" destdir="${build.classes}" debug="no"> <!-- 引用上面的compile.classpath--> <classpath refid="compile.classpath"/> </javac> </target> <target name="copy" depends="compile"> <!-- 把${src.dir}下面的properties文件复制到${deploy.classes} --> <copy todir="${deploy.classes}"> <fileset file="${src.dir}/*.properties"/> </copy> <!-- 复制指定文件 --> <copy todir="${deploy.home}"> <fileset file="${build.classes}/${app.name}.jar"/> </copy> <!-- 把${build.classes}下面的文件复制到${deploy.classes},包 --> <!-- 括.class文件,不包括.log文件,子目录中的文件也会复制。 --> <copy todir="${deploy.classes}"> <fileset dir="${build.classes}"> <include name="**/*.class"/> <exclude name="**/*.log"/> </fileset> </copy> <!-- 复制具体文件,覆盖已有的文件 --> <copy file="src/META-INF/services.xml" tofile="${dest.dir.classes}/META-INF/services.xml" overwrite="true"/> </target> <target name="clean"> <!-- 删除${deploy.classes}下面的所有(.class)文件--> <delete> <fileset dir="${deploy.classes}"> <include name="*"/> <!-- 包括所有文件 --> <include name="*/**.class"/> <exclude name=""/> <!-- ""表示不含任何文件 --> </fileset> </delete> <!-- 删除${bin.dir}下面的.class、.xml、.properties、.log文件 --> <delete> <fileset dir="${bin.dir}"> <include name="**/*.class"/> <include name="**/*.xml"/> <include name="**/*.properties"/> <include name="**/*.log"/> </fileset> </delete> <!-- 删除指定路径的文件 --> <delete file="${deploy.home}/${app.name}.jar"></delete> </target> <!-- run依赖于compile和delete --> <!-- 类似于在${bin.dir}下面执行java events.EventManager,只有 --> <!-- fork="YES"的情况下,dir属性才有效,使用classpathref引用前面 --> <!-- 的compile.classpath。 --> <!-- arg表示提供参数。运行方式:ant run -Daction=value --> <!-- 其效果等同于:java events.EventManager value --> <!-- 只不过不再需要用-cp指定classpath,非常方便。 --> <target name="run" depends="compile, clean"> <java classname="events.EventManager" fork="YES" dir="${bin.dir}" classpathref="compile.classpath"> <classpath path="${bin.dir}"/><!-- classpath不是必须的 --> <arg value="${action}"/> <!-- arg也不是必须的,1或多个 --> </java> </target> <!-- 使用exec可以运行可执行文件。dir表示在某个目录下执行; --> <!-- executable表示可执行文件的路径,如果在path变量中,则只要 --> <!-- 可执行文件名即可,否则应该给出完整路径;os表示是什么系统; --> <!-- 也可以通过arg提供参数。 --> <target name="xjc"> <echo>Run xjc.bat and generate sources.</echo> <exec dir="${src.dir}" executable="${JAXB.HOME}/bin/xjc.bat" os="Windows XP"> <arg line="-dtd ${dtd.file2}"></arg> <!--arg value="${dtd}"></arg--><!-- DTD file as run-time argument--> </exec> </target> <!-- 把${bin.dir}下面的所有文件打包成:${app.name}.aar文件,并放 --> <!-- 置在${bin.dir}目录下。类似于在${bin.dir}目录下执行: --> <!-- jar cvf Cabin.aar . --> <target name="jar"> <jar basedir="${bin.dir}" destfile="${bin.dir}/${app.name}.aar"> </jar> </target> <target name="deploy"> </target> <target name="help"> <echo>ant copy Copy files.</echo> <echo>ant compile Compile source files.</echo> <echo>ant/ant build Build.</echo> <echo>ant run -Daction=store Run client</echo> <echo>ant clean Clean.</echo> <echo>ant help Display this help message.</echo> <echo>${env.JBOSS_HOME}</echo><!-- 输出系统的JBOSS_HOME变量 --> </target> </project> |
|
来自: fondofbeyond > 《ant》