Ant虽然只是脚本,但是却可以用结构化的方式组织。其开发步骤大体上分:1.了解需求,对开发工作进行详细地了解和分析,明确个步骤。2.将整个开发流程进行归纳,简化,画出流程图。3.对流程图进行提炼,抽象出通用函数。4.实现各函数。
函数的编写方法采用传参的target,再用antcall调用时传入参数的方式。如创建目录函数为:
<target name=”mkdir”>
<mkdir dir=”${dirName}”/>
</target>
调用时使用:
<antcall target=”mkdir” inheritall=”false”>
<param name=”dirname”value=”bin”/>
</antcall>
在初始编写Ant脚本时,各个targe引用其他target的关系可以据实全部写出,并不会调用许多遍。在化简阶段,可以将有向无环图之间的多余依赖删掉,化简为较简单的单链路。
以一个Web程序的发布为例,说明发布过程。在Eclipse下编写的Java程序和在Tomcat下运行的程序,文件目录并不完全相同。我们需要把编写好的代码移动到tomcat的服务器下运行。这个过程的build.xml大体流程为新建web应用目录,复制WEB-BIN,复制Classes,复制Webcontent下内容。具体为:
<?xml version="1.0" encoding="UTF-8"?>
<project name="webAnt" default="root">
<propertyname="web" value="D:\Program Files\tomcat6\webapps\webAnt"/>
<targetname="init">
<mkdirdir="${web}"/>
</target>
<targetname="copy" depends="init">
<copytodir="${web}" overwrite="true"flatten="false">
<filesetdir="WebRoot">
<includename="WEB-INF/lib/*"/>
<includename="WEB-INF/web.xml"/>
</fileset>
</copy>
<copytodir="${web}/WEB-INF">
<filesetdir="WEB-INF/classes">
<includename="class/**/*"/>
</fileset>
</copy>
</target>
<targetname="root" depends="copy"/>
</project>
以上功能相当于Eclipse的发布功能。