<?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}" failonerror="false" />
<delete dir="${dist.dir}" failonerror="false"/>
<delete dir="${report}" failonerror="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>