Example.peroperties
classes.dir=classes
lib.dir=lib
dist.dir=dist
doc.dir=doc
build.xml
<?xml version="1.0" encoding="UTF-8"?>
<project name="AntExample" default="practice" basedir=".">
<property name="src.dir" value="src"></property>
<!-- 读取文件中定义的属性 -->
<property file="example.properties"></property>
<path id="base.path">
<pathelement location="lib/"/>
<pathelement path="${java.class.path}/"/>
<pathelement path="${additional.path}"/>
</path>
<!-- 指定的属性是否存在 -->
<target name="targetA" if="ant.java.version">
<echo message="Java Version:${ant.java.version}" file="echoFile"></echo>
<!-- 将显示的信息写入file,是否以追加的方式append, 信息报告的级别info -->
<echo message="The basedir is ${basedir}" file="echoFile" append="true" level="info"></echo>
<echo message="The ant.file is ${ant.file}"></echo>
<echo message="The ant.version is ${ant.version}"></echo>
</target>
<!-- 依赖的目标,复制文件到文件夹、文件夹内容到文件夹 -->
<target name="practice" depends="targetA" description="practise ant examples">
<echo message="I'm practising Ant!"></echo>
<copy file="sourcefile" tofile="srcdir/srcfile"></copy>
<copy todir="todir">
<fileset dir="srcdir">
<exclude name="**/*.java"/>
</fileset></copy>
<copy todir="../backup/dir">
<fileset dir="src_dir"/>
文件名后加bak
<mapper type="glob" from="*"to="*.bak"/>
</copy>
</target><!-- 删除文件夹、文件 -->
<target name="clean" description="delete all generated files">
<delete dir="${classes.dir}" failοnerrοr="false"/>
<delete file="${dist.dir}/hello.jar"/>
<delete dir="${doc.dir}" failοnerrοr="false"/>
删除一组文件
<delete>
<fileset dir="." includes="**/*.bak"/>
</delete>
</target><target name="move">
<move todir="my/src/dir">
<fileset dir="my/src/dir">
<include name="**/*.jar"/>
<exclude name="**/*.bak"/>
</fileset>
<mapper type="glob" from="*"to="*.bak"/>
</move>
</target>
<!-- 编译-->
<target name="compile" depends="clean" description="compile the HelloWorld.java file">
<!-- Create the time stamp -->
<tstamp/>
<mkdir dir="${classes.dir}"/><!-- includes被包含的java文件模式, excludes被排除的模式 -->
<javac srcdir="${src.dir}" destdir="${classes.dir}" includes="mypackage/p1/**,mypackage/p2/**" excludes="mypackage/p1/testpackage/**" classpath="xxx.jar">
<!-- 类路径 classpath -->
</javac></target>
<target name="run" depends="compile" description="run the HelloWorld.class file" >
<java classname="HelloWorld">
<classpath>
<path refid="base.path">
<pathelement path="${classes.dir}"/><!-- 要运行的Java Class的Jar文件名 -->
<fileset dir="lib">
<include name="**/*.jar"/>
</fileset>
<pathelement location="classes"/>
</classpath></java>
</target><!-- 打包-->
<target name="pack" depends="run" description="make .jar file"><mkdir dir="${dist.dir}"/>
<jar destfile="${dist.dir}/hello.jar" basedir="${classes.dir}" includes="mypackage/test/**" excludes="**/Test.class" manifest=”my.mf” >
<!-- Put everything in ${build} into the MyProject-${DSTAMP}.jarfile -->
<jar jarfile="${dist}/lib/MyProject-${DSTAMP}.jar"basedir="${build}"/> //yyyymmdd
<jar jarfile="${dist}/lib/MyProject-${TSTAMP}.jar"basedir="${build}"/> //hhmm
<jar jarfile="${dist}/lib/MyProject-${TODAY}.jar"basedir="${build}"/> //2003 年 12 月 17 日
配置 tstamp 任务来设置不同的属性,OFFSET_TIME 属性设置为距离当前时间 10 分钟之后的小时数、分钟数和秒数
<tstamp>
<format property="OFFSET_TIME"
pattern="HH:mm:ss"
offset="10" unit="minute"/>
</tstamp>
</target>
<!-- 生成程序的api文档 -->
<target name="doc" depends="pack" description="create api doc">
<mkdir dir="${doc.dir}"/>
<javadoc destdir="${doc.dir}" author="true" version="true" use="true" windowtitle="HelloWorld API">
<!-- 源文件路径 -->
<sourcepath>
<pathelement path="${src.dir}"/>
</sourcepath>
<!-- 用户类路径 -->
<classpath>
<pathelement path="${classes.dir}"/>
</classpath>
<fileset dir="${src.dir}" defaultexcludes="yes">
</fileset>
<doctitle>
<![CDATA[<h1>Hello, test</h1>]]>
</doctitle>
<bottom>
<![CDATA[<i>All Rights Reserved.</i>]]>
</bottom>
</javadoc>
</target>
<!-- 发送邮件 -->
<target name="mail" description="mail something">
<mail mailhost="smtp.sina.com" user="xxxxxxx" password="xxxxxxxxx1" subject="Test build" charset="utf-8">
<from address="xxxxxxxxx@sina.com"/>
<to address="xxxxx@xxx.net.cn"/>
<message>The nightly build has completed</message>
<fileset dir="${src.dir}">
<include name="**/*.java"/>
</fileset>
</mail>
</target>
</project>