<?xml version="1.0" encoding="utf-8" ?> <project default="dist" basedir="."> <!--主要的系统环境属性--> <property environment="env"/><!--取window,unix...的环境变量--> <property name="java.home" value="${env.JAVA_HOME}"/> <property name="ant.home" value="${env.ANT_HOME}"/> <!--主要的app环境属性--> <property name="app.name" value="hello-ant"/> <property name="app.jar" value="${app.name}.jar"/> <property name="app.copyright" value=" Copyright (c) 2008 北大青鸟(深圳鲲鹏中心)lxt008. All rights reserved."/> <!--app中src的属性--> <property name="src.dir" value="src" /> <property name="src.script" value="${src.dir}/script"/> <!--app用到的lib--> <property name="lib.dir" value="lib"/> <!--app的build目录--> <property name="build.dir" value="build" /> <property name="build.classes" value="${build.dir}/classes"/> <property name="build.docs" value="${build.dir}/docs"/> <property name="build.docs.api" value="${build.docs}/api"/> <property name="build.lib" value="${build.dir}/lib"/> <!--app的dist(distribution)目录--> <property name="dist.dir" value="dist"/> <property name="dist.bin" value="${dist.dir}/bin"/> <property name="dist.docs" value="${dist.dir}/docs"/> <property name="dist.lib" value="${dist.dir}/lib"/> <property name="dist.report" value="${dist.dir}/report"/> <!--app的docs目录--> <property name="docs.dir" value="docs"/> <!--app的单元测试报告目录--> <property name="report" value="report" /> <path id="classpath"> <pathelement location="${build.classes}"/> <pathelement path="${java.home}/lib/tools.jar"/> <pathelement path="lib/junit.jar"/> </path> <target name="init"> <!--清除以前目录--> <delete dir="${build.dir}" failοnerrοr="false" /> <delete dir="${dist.dir}" failοnerrοr="false"/> <delete dir="${report}" failοnerrοr="false"/> <!--准备目录--> <mkdir dir="${build.dir}"/> <mkdir dir="${build.classes}"/> <mkdir dir="${build.docs}"/> <mkdir dir="${build.docs.api}"/> <mkdir dir="${build.lib}"/> <mkdir dir="${dist.dir}"/> <mkdir dir="${dist.bin}"/> <mkdir dir="${dist.lib}"/> <mkdir dir="${report}"/> <mkdir dir="${dist.report}"/> </target> <target name="build" depends="init"> <javac srcdir="${src.dir}" destdir="${build.classes}"> <classpath refid="classpath"/> </javac> </target>
<target name="jars" depends="build"> <jar basedir="${build.classes}" jarfile="${build.lib}/${app.jar}"/> </target> <target name="junitreport" depends="jars"> <!--执行单元测试 --> <junit printsummary="on" fork="true" haltonfailure="false" failureproperty="tests.failed" showoutput="true"> <classpath refid="classpath"/> <formatter type="xml"/> <batchtest todir="${report}"> <fileset dir="${build.classes}"> <include name="**/Test*.*"/> </fileset> </batchtest> </junit> <!--产生单元测试报告 --> <junitreport todir="${report}"> <fileset dir="${report}"> <include name="TEST-*.xml"/> </fileset> <report format="frames" todir="report"/> </junitreport> <!--测试出错时的输出--> <fail if="tests.failed"> ------------------------------------------------------ One or more tests failed, check the report for detail. ------------------------------------------------------ </fail> </target> <target name="javadocs" depends="junitreport" description="--> creates the API documentation"> <!--copy docs 手册... --> <copy todir="${build.docs}"> <fileset dir="${docs.dir}"/> </copy> <javadoc packagenames="com.lxt008" sourcepath="${src.dir}" defaultexcludes="yes" destdir="${build.docs.api}" author="true" version="true" use="true" windowtitle="Docs API"> <doctitle><![CDATA[<h1>hello ant Docs API</h1>]]></doctitle> <bottom><![CDATA[<i>${app.copyright}</i>]]></bottom> </javadoc> </target> <target name="dist" depends="javadocs"> <!--copy bin 执行文件 --> <copy todir="${dist.bin}"> <fileset dir="${src.script}/"/> </copy> <copy todir="${dist.docs}"> <fileset dir="${build.docs}/"/> </copy> <!-- copy lib 文件 --> <copy todir="${dist.lib}"> <fileset dir="${build.lib}/"/> </copy> <copy todir="${dist.report}"> <fileset dir="${report}/"/> </copy> </target> </project>