例子
ant
使用当前目录下的buildxml运行Ant执行缺省的target
ant buildfile testxml
使用当前目录下的testxml运行Ant执行缺省的target
ant buildfile testxml dist
使用当前目录下的testxml运行Ant执行一个叫做dist的target
ant buildfile testxml Dbuild=build/classes dist
使用当前目录下的testxml运行Ant执行一个叫做dist的target并设定build属性的值为build/classes
编写buildxml
Ant的buildfile是用XML写的每个buildfile含有一个project
buildfile中每个task元素可以有一个id属性可以用这个id值引用指定的任务这个值必须是唯一的(详情请参考下面的Task小节)
Projects
project有下面的属性 Attribute Description Required
name 项目名称 No
default 当没有指定target时使用的缺省target Yes
basedir 用于计算所有其他路径的基路径该属性可以被basedir property覆盖当覆盖时该属性被忽略如果属性和basedir property都没有设定就使用buildfile文件的父目录 No
项目的描述以一个顶级的<description>元素的形式出现(参看description小节)
一个项目可以定义一个或多个target一个target是一系列你想要执行的执行Ant时你可以选择执行那个target当没有给定target时使用project的default属性所确定的target
Targets
一个target可以依赖于其他的target例如你可能会有一个target用于编译程序一个target用于生成可执行文件你在生成可执行文件之前必须先编译通过所以生成可执行文件的target依赖于编译targetAnt会处理这种依赖关系
然而应当注意到Ant的depends属性只指定了target应该被执行的顺序-如果被依赖的target无法运行这种depends对于指定了依赖关系的target就没有影响
Ant会依照depends属性中target出现的顺序(从左到右)依次执行每个target然而要记住的是只要某个target依赖于一个target后者就会被先执行
<target name=
A
/>
<target name=B depends=A/>
<target name=C depends=B/>
<target name=D depends=CBA/>
假定我们要执行target D从它的依赖属性来看你可能认为先执行C然后B最后A被执行错了C依赖于BB依赖于A所以先执行A然后B然后C最后D被执行
一个target只能被执行一次即时有多个target依赖于它(看上面的例子)
[] [] [] [] [] []