Ant使用手册

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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)

任务是一小段可以执行的代码

相关文档
最新文档