最近学习ant,从新浪网站看到一篇介绍build.xml标签的文章,感觉不错,所以转载过来。原文链接:http://blog.sina.com.cn/s/blog_4e7015810100dz4t.html
1.project标签
<project basedir=”.” name=”example” default=”main”>
….
<target name=”main”>
….
</target>
….
</project>
project 标记包含3个属性:
。basedir 指定项目所在的目录位置
。name 设定项目的名称
。default 设顶项目的build执行时预设的target
2.target标签
target标签在project标签之内,一个project可以包含多个target
….
<target name=”init”>
</target>
<target desponds=”init” description=”执行程序” name=”main”>
</target>
….
target 标签包含6个属性
。description 对于这个target的描述
。name target的名称
。depends 所依赖的其他target
example:
{
<target name=”x”/>
<target name=”y”/>
<target depends=”x,y” name=”z”/>
…..
执行顺序为xyz
}
。if 检查某个属性(x)设置了,只有这个属性(x)的时候target才执行
example
{
<property name=”someOne” value=”somue”/>
<target name=”init”>
</target>
<target if=”someOne” deends=”init” description=”执行程序” name=”main”>
</target>
…..
只有someOne这个属性被设置了,init执行了,main才执行
}
。unless 检查某个属性(x)是否被设置了,和if相反,只有这个属性没有设置的时候才执行这个任务。
。id 标记这个target的id.
3.task标签
task 可以用来执行一个特定的工作,在Ant中已经做了许多工作,而且Ant的结构也支持所以用者自己开发task,只要在使用前申明这个task就可以了
example:
{
<target name=”xdoclet”>
<taskdef classpathref=”path” classname=”xdoclet.modules.ejb.A” name=”ejbdoclet”>
<taskdef classpathref=”path” className=”xdoclet.modules.B” name=”jbossnet”>
<ejbdoclet ejbspec=”2.0” destDir=”src”>
<fileset dir=”src” includes=”***.properties”/>
<exclude name=”**/javax.servlet.jar”/>
<exclude name=”**/xxx.jar”/>
</fileset>
…
}
。dirset用来描述目录的集合:
。dir 设定dirset的根目录位置
。exclude设定dirset不包含的文件
。include 设定dirset包含的文件
example {
…..
<dirset dir=”${build.dir }”>
<include name=”**/classes”/>
<exclude name=”***.java”/>
</delete>
…
}
5.结构标签
⑴ant用来呼叫其他的build文件, 让多个子文件可以一起工作
,antfile 指定的外部build文件
。target 指定的外部build文件中的一个target
…
<ant antfile=”anotherbuild.xml”/>
<ant antfile=”anotherbuild.xml” target=”compile”/>
….
⑵antcall 可以调用其他的target
。target 指定的target名称
。param 调用时传的参数
…
<target name=”init”>
</target>
<antcall target=”iniit”>
<param name=”parame1” value=”value1”/>
</anticall>
…
⑶sequential 在sequential中的任务将被依照顺序执行
…
<sequential>
<anticall target=”task1”></anticall>
<anticall target=”task2”></anticall>
<anticall target=”task3”></anticall>
</sequential>
…
⑷parallel 在parallel中的任务将会被并行执行
…
< parallel >
<anticall target=”task1”></anticall>
<anticall target=”task2”></anticall>
<anticall target=”task3”></anticall>
</ parallel >
来源:(http://blog.sina.com.cn/s/blog_4e7015810100dz4t.html) - ant的build.xml标签简介_xdwangandy_新浪博客