Ant使用手册
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Ant使用手册
原文:Ant1.5的手册(manual)
编写一个简单的编译文件(Buildfile)
Ant 的编译文件是用XML写的。每一个编译文件包含一个项目(project)和至少一个目标(target,可以是缺省的)。目标包含任务(task)元素。编译文件中的每一个任务元素可以有一个id属性,属性可以通过值以后被引用到。属性值是唯一的。(更多信息,参看下面的任务一节。)
工程(Projects)
工程有三种属性:
---------------------------------------------------------------------------------------------------------
属性......描述.......................................................是否必须
name..... 工程的名称....................................................否
default...当没有提供目标时,使用缺省.....................................是
basedir...基础目录,从它开始计算所有的的路径。这个属性可能被先前设置的......否.........."basedir"特性覆盖。当出现这种情况时,它必须在project标记中........ ..........被删除。如果没有设置该属性或者特性,将使用编译文件的父目录。.......
---------------------------------------------------------------------------------------------------------
任意的,工程的描述可以可以被提供为顶级(top-level)的
每一个工程定义了一个或多个的目标。目标指你想要执行的任务的集合。当启动Ant时,可以选择想要执行的目标。当没有指定目标时,使用工程的缺省值。
目标(Tasks)
目标可以依赖于其他的目标。例如,可以使一个目标编译,一个目标生成部署。只有编译完成以后才可以部署,所以部署目标依赖于编译目标。Ant能解决这些依赖关系。
但是,需要注意的是,Ant的依赖属性(depends attribute)仅仅指目标被执行的次序,它不会影响那些指定关系的目标是否被执行,如果依赖的目标不需要运行。
Ant试图去执行目标的次序按它们的依赖属性出现的顺序(从左到右)。需要注意的是,目标可能会被提前执行当它前面的目标依赖它的时候:
假设我们想要执行目标D。从它的依赖属性看,你可能会觉得应该首先执行C,然后是B和A。错了!C依赖于B,B依赖于A,因此A首先被执行,然后是B和C,最后才是D被执行。
一个目标仅仅被执行一次,即使有多于一个目标依赖于它(参看前面的例子)。
当设置if(或者unless)特性的时候,目标有能力控制它是执行。比如,这就允许在编译的进程中有更好的控制手段,能取决于所使用的系统状态(java 版本,操作系统,命令行的特性定义,等等)。为了使目标能发挥这个特性,应该加上if(或者unless)属性来指出跟目标执行有关系的特性的名字。例如:
在第一个例子中,如果module-A-present特性被设置(任何值),目标将执行。在第二个例子中,如果module-A-present特性被设置(同样是任何值),目标将不被执行。
如果没有if和unless属性存在,目标将总是被执行。
可选的描述属性(description attribute)可以作为目标的一行的描述,它可以被-projecthelp 命令行选项打印出来。没有描述的目标被视为内部的,将不被列出,除非用到-verbose或者是-debug命令。
把tstamp任务放到被其他目标依赖的,称为初始化(initialization)目标里是一个好的运用。必须确认的是,这个目标放到被依赖的其他目标中总是首先执行。在这个说明文档中,大多数的初始化目标的名字是“ init”。
目标有以下的属性:
------------------------------------------------------------------------------------------------------------------
属性..........描述.....................................................是否必须
name.........目标的名字...................................................是
depends......用逗号隔开的指出所依赖的目标的名字列表.........................否if...........为了执行目标必须要设置的特性的名字.............................否unless.......为了执行目标不能设置的特性的名字...............................否
description...关于目标功能的简短描述......................................否
------------------------------------------------------------------------------------------------------------------
目标的名字可以是任何符合XML文件编码的字母数字串。空串"",逗号","和空格" "也在包括其中。由于它们会引起混淆,以后的Ant版本将不会支持它们,请避免使用这些。集成开发环境(IDE)支持不寻常的目标名字,或者是其他包含空格的目标名字,各种集成开发环境会有所不同。
目标以连字符开头是允许的,比如“-restart”,也可以用来命名那些不会以命令行直接调用的目标。
任务(Tasks)
任务是一小段可以执行的代码