3、target元素(是Ant的基本执行单元,它可以包含一个或多个具体的任务,多个target可以存在相互依赖关系)、name属性(指定名称)、depends属性(描述target之间的依赖关系,以,间隔,顺序执行,被依赖的target优先执行)、if/unless属性(验证属性是否存在,若存在,则执行/不执行)、description属性(target功能的简短描述与说明)
<?xml version="1.0"?>
<project name="targetStudy">
<target name="targetA" if="ant.java.version">
<echo message="Java Version: ${ant.java.version}"/>
</target>
<target name="targetB" depends="targetA" unless="amigo">
<description>
a depend example!
</description>
<echo message="The base dir is: ${basedir}"/>
</target>
</project>
4、property元素(参量或者参数的定义),若要在外部引入某文件,例如build.properties文件,可以通过如下内容将其引入:<property file=” build.properties”/>
同时,Ant还提供了一些它自己的内置属性,如下:
basedir:project基目录的绝对路径.
ant.file:buildfile的绝对路径,如上面的各例子中,ant.file的值为E:"build.xml;
ant.version:Ant的版本,在本文中,值为1.7.0;
ant.project.name:当前指定的project的名字,即前文说到的project的name属性的值;
ant.java.version:Ant检测到的JDK的版本。
备注:ant中若引用property或者它的内置属性,用${}括号起来引用。
<?xml version="1.0"?>
<project name="propertyStudy" default="example">
<property name="name" value="amigo"/>
<!--读取属性文件的属性配置-->
<property file="foo.properties"/>
<property name="age" value="25"/>
<target name="example">
<echo message="name: ${name}, age: ${age}"/>
</target>
</project>
5、Ant的任务介绍
1、输出信息
<echo message="xxx"/>
<echo>yyyy</echo>
2、copy任务
该任务主要用来对文件和目录的复制功能。举例如下:
Eg1.复制单个文件:<copy file="file.txt" tofile="copy.txt"/>
Eg2.对文件目录进行复制:
<copy todir="../newdir/dest_dir">
<fileset dir="src_dir"/>
</copy>
Eg3. 将文件复制到另外的目录:
<copy file="file.txt" todir="../other/dir"/>
<copyfile src="test.java" dest="subdir/test.java">
dest:代表目标目录
Eg4.拷贝一堆文件到一个目录
<copy todir="../dest/dir">
<fileset dir="src_dir">
<exclude name="**/*.java">
</fileset>
</copy>
Eg5.拷贝一个目录下的东西到另一个目录下(includes加入,excludes排除,即排除这些之外的东西都要加入)
<copy src="${src}/resources" dest="${dist}" includes="**/*.java" excludes="**/Test.java"/>
2、delete任务
对文件或目录进行删除,举例如下:
Eg1. 删除某个文件:<delete file="photo/amigo.jpg"/>
Eg2. 删除某个目录:<delete dir="photo"/>
Eg3. 删除所有的备份目录或空目录:(也可以使用include和exclude)
<delete includeEmptyDirs="true">
<fileset dir="." includes="**/*.bak"/>
</delete>
3. mkdir任务
创建目录。eg:<mkdir dir="build"/>
4、move任务
移动文件或目录,举例如下:
Eg1. 移动单个文件:<move file="fromfile" tofile=”tofile”/>
Eg2. 移动单个文件到另一个目录:<move file="fromfile" todir=”movedir”/>
Eg3. 移动某个目录到另一个目录:
<move todir="newdir">
<fileset dir="olddir"/>
</move>
5、重命名任务
<rename src="foo.jar" dest="ant-${version}.jar"/>
6、Touch的使用
如果文件不存在,创建文件,如果存在,更改最后访问时间为系统时间
<touch file="myfile"/>
7、打Jar包
<target name="build" depends="compile">
<jar destfile="${hello_jar}" basedir="${dest}"/>
</target>
8、压缩zip文件
<zip destfmlile="${dist}/manual.zip"
basedir="htdocs/manual"
includes="api/**/*.html"
excludes="**/todo.html"/>
7、一份Ant的API文档:http://files.cnblogs.com/files/jmcui/ant%E4%BD%BF%E7%94%A8%E5%B8%AE%E5%8A%A9%E6%89%8B%E5%86%8C_%E4%B8%AD%E6%96%87.pdf