Ant:一种基于Java的build工具。开源项目ANT官网:http://ant.apache.org
每个ant脚本(缺省叫build.xml)中设置了一系列任务(target):比如对于一个一般的项目可能需要有以下任务。
* 任务1:usage 打印本脚本的帮助信息(缺省)
* 任务2:clean <-- init 清空初始化环境
* 任务3:javadoc <-- build <-- init 生成JAVADOC
* 任务4:jar <-- build <-- init 生成JAR
* 任务5:all <-- jar + javadoc <-- build<-- init 完成以上所有任务:jar javadoc
而多个任务之间往往又包含了一定的依赖关系:比如把整个应用打包任务(jar)的这个依赖于编译任务(build),而编译任务又依赖于整个环境初始化任务(init)等。
build.xml格式参考:
<?xmlversion="1.0" ?>
<projectname="Hello World" default="compress">
<target name="compile">
<javacsrcdir="."/>
<echo> Compilation Complete!</echo>
</target>
<target name="compress"depends="compile">
<jar destfile="HelloWorld.jar" basedir="."includes="*.class" />
<echo> Building .jar file Complete! </echo>
</target>
</project>
较为完整的实例build.xml文件:
<?xmlversion="1.0" encoding="UTF-8"?>
<project name="wartest" default="war">
<!--属性设置,属性值设置后不可改变-->
<property name="web.dir" location="WebContent" ></property>
<property name="web.lib.dir" location="${web.dir}/WEB-INF/lib"></property>
<property name="build.classes.dir" location="build/classes"></property>
<property name="project.name" value="wartest"></property>
<!--用到的jar文件设置路径-->
<path id="compile.classpath">
<fileset dir="${web.lib.dir}">
<include name="*.jar"></include>
</fileset>
</path>
<!--各种任务-->
<target name="init">
<mkdir dir="${build.classes.dir}"></mkdir>
<mkdir dir="${dist.dir}"></mkdir>
</target>
<target name="compile" depends="init">
<javac destdir="${build.classes.dir}" debug="true" srcdir="src">
<classpath refid="compile.classpath"></classpath>
</javac>
</target>
<target name="war" depends="compile">
<war destfile="${dist.dir}/${project.name}.war" webxml="${web.dir}/WEB-INF/web.xml">
<fileset dir="${web.dir}"/>
<lib dir="${web.lib.dir}"/>
<classes dir="${build.classes.dir}"/>
</war>
</target>
<target name="clean">
<delete dir="${dist.dir}"></delete>
<delete dir="${build.classes.dir}"></delete>
</target>
</project>
属性设置<property></property>还可以在build.properties文件中设置:
web.dir=WebContent
web.lib.dir=${web.dir}/WEB-INF/lib
然后在build.xml文件中应用:
<
property
file="build.properties"
/>