Ant使用手册
一.安装与配置
二.Ant的关键元素
Ant的关键元素project、target、property和task。
1.project元素
project元素是Ant构件文件的根元素,Ant构件文件至少应该包含一个project元素,否则会发生错误。
在每个project元素下,可包含多个target元素。
2. target元素
3)if属性
用于验证指定的属性是否存在,若不存在,所在target将不会被执行。
4)unless属性
该属性的功能与if属性的功能正好相反,它也用于验证指定的属性是否存在,若不存在,所在target将会被执行。
3. property元素
Ant提供了一些内置的属性,它能得到的系统属性的列表与Java文档中System.getPropertis()方法得到的属性一致,
这些系统属性可参考sun网站的说明。
同时,Ant还提供了一些它自己的内置属性,如下:
basedir:project基目录的绝对路径,该属性在讲解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的版本,在上例运行结果中可看到为1.5。
三.Ant的常用任务
1.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"/>
2. delete任务
Eg1. 删除某个文件:
<delete file="photo/amigo.jpg"/>
Eg2. 删除某个目录:
<delete dir="photo"/>
Eg3. 删除所有的备份目录或空目录:
<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.echo任务
该任务的作用是根据日志或监控器的级别输出信息。
它包括message、file、append和level四个属性,举例如下:
<echo message="Hello,Amigo" file="logs/system.log" append="true">
四.利用Ant构建和部署Java工程
1. 利用Ant的javac任务来编译java程序
<?xml version="1.0"?>
<project name="javacTest"default="compile" basedir=".">
<target name="clean">
<delete dir="build"/>
</target>
<target name="compile" depends="clean">
<mkdir dir="build/classes"/>
<javac srcdir="src" destdir="build/classes"/>
</target>
</project>
2. 使用Ant的java任务运行Java程序
。。。
<target name="run" depends="compile">
<java classname="HelloWorld">
<classpath>
<pathelement path="build/classes"/>
</classpath>
</java>
</target>
。。。
3. 使用Ant的jar任务生成jar文件
。。。
<target name="jar" depends="run">
<jar destfile="helloworld.jar" basedir="build/classes">
<manifest>
<attribute name="Main-class" value="HelloWorld"/>
</manifest>
</jar>
</target>
。。。
4. 使用Ant的war任务打包J2EE Web项目
。。。
<target name="war" depends="compile">
<war destfile="${build}/antwebproject.war" webxml="WebRoot/WEB-INF/web.xml">
<!-- 拷贝WebRoot下除了WEB-INF和META-INF两个文件夹-->
<fileset dir="WebRoot" includes="**/*.jsp"/>
<!-- 拷贝lib目录下的jar包-->
<lib dir="${lib}"/>
<!-- 拷贝build/classes下的class文件-->
<classes dir="${classes}"/>
</war>
</target>
。。。
五、ant工具的其他用途
1、ant中执行Junit测试
2、ant生成javadoc任务
3、ant条件判断
参考文档:http://hi.baidu.com/hivemind/blog/item/5eb8492710b83104908f9d78.html