如果(或如果不)某些屬性被設定才執行某個target這樣允許根據系統的狀態(java version OS 命令行屬性定義等等)來更好地控制build的過程要想讓一個target這樣做你就應該在target元素中加入if(或unless)屬性帶上target因該有所判斷的屬性例如
<target name=
build
module
A
if=
module
A
present
/>
<target name=
build
own
fake
module
A
unless=
module
A
present
/>
如果沒有if或unless屬性target總會被執行
可選的description屬性可用來提供關於target的一行描述這些描述可由projecthelp命令行選項輸出
將你的tstamp task在一個所謂的初始化target是很好的做法其他的target依賴這個初始化target要確保初始化target是出現在其他target依賴表中的第一個target在本手冊中大多數的初始化target的名字是init
target有下面的屬性
Attribute Description Required
name target的名字 Yes
depends 用逗號分隔的target的名字列表也就是依賴表 No
if 執行target所需要設定的屬性名 No
unless 執行target需要清除設定的屬性名 No
description 關於target功能的簡短描述 No
Tasks
一個task是一段可執行的代碼
一個task可以有多個屬性(如果你願意的話可以將其稱之為變量)屬性只可能包含對property的引用這些引用會在task執行前被解析
下面是Task的一般構造形式
<name attribute=value attribute=value />
這裡name是task的名字attributeN是屬性名valueN是屬性值
有一套內置的(builtin)task以及一些可選task但你也可以編寫自己的task
所有的task都有一個task名字屬性Ant用屬性值來產生日志信息
可以給task賦一個id屬性
<taskname id=
taskID
/>
這裡taskname是task的名字而taskID是這個task的唯一標識符通過這個標識符你可以在腳本中引用相應的task例如在腳本中你可以這樣
<script
>
task
setFoo(
bar
);
</script>
設定某個task實例的foo屬性在另一個task中(用java編寫)你可以利用下面的語句存取相應的實例
[] [] [] [] [] []
From:http://tw.wingwit.com/Article/program/Java/ky/201311/29096.html