1. project元素
- name 屬性
用於指定 project 元素的名稱。 - default 屬性
用於指定 project 默認執行時所執行的 target 的名稱。 - basedir 屬性
用於指定基路徑的位置。該屬性沒有指定時,使用 Ant 的構件檔的附目錄作為基準目錄。
<?xml version="1.0" ?> <project name ="antPro" default ="getBaseDir" basedir ="C:/ThinkInJAVACode"> <target name="getBaseDir"> <echo message="The base dir is: ${basedir}"/> </target> </project>
Buildfile: C:\ThinkInJAVACode\build.xml
sayBaseDir:
[echo] The base dir is: C:\ThinkInJAVACode
BUILD SUCCESSFUL
Total time: 0 seconds
2. target 元素
- name 屬性
指定 target 元素的名稱,這個屬性在一個 project 元素中是唯一的。我們可以通過指定 target 元素的名稱來指定某個 target 。 - depends 屬性
用於描述 target 之間的依賴關系,若與多個 target 存在依賴關系時,需要以「,」間隔。 Ant 會依照 depends 屬性中 target 出現的順序依次執行每個 target 。被依賴的 target 會先執行。 - if 屬性
用於驗證指定的屬性是否存在,若不存在,所在 target 將不會被執行。 - unless 屬性
該屬性的功能與 if 屬性的功能正好相反,它也用於驗證指定的屬性是否存在,若不存在,所在 target 將會被執行。 - description 屬
性該屬性是關於 target 功能的簡短描述和說明。
<?xml version="1.0" ?> <project name ="targetPro" default="targetB"> <target name="targetA" if ="ant.java.version"> <echo message ="JAVA Version: ${ant.java.version}"/> </target> <target name="targetB" depends ="targetA" unless ="philander"> <description> a depend example! </description> <echo message ="The base dir is: ${basedir}"/> </target> </project>
[echo] JAVA Version: 1.6
3. property 元素
property元素可看作參量或者參數的定義,project 的屬性可以通過 property 元素來設定,也可在 Ant 之外設定。若要在外部引入某檔,例如 build.properties 檔,可以通過如下內容將其引入:
<property file="build.properties"/>
property 元素可用作 task 的屬性值。在 task 中是通過將屬性名放在「 ${ 」和「 } 」之間,並放在 task 屬性值的位置來實現的。
Ant 提供了一些內置的屬性,它能得到的系統屬性的清單與 JAVA 文檔中 System.getPropertis() 方法得到的屬性一致,這些系統屬性可參考 sun 網站的說明。同時, Ant 還提供了一些它自己的內置屬性,如下:
- basedir:project 基目錄的絕對路徑;
- ant.file:buildfile的絕對路徑,上例中ant.file值為C:\ThinkInJAVACode\build.xml;
- ant.version:Ant 的版本資訊,本文為1.8.1 ;
- ant.project.name:當前指定的project的名字,即前文說到的project的name屬性值;
- ant.java.version:Ant 檢測到的JDK版本,本文為 1.6 。
舉例說明如下:
<? xml version="1.0" ?> <project name ="propertyPro" default ="example"> <property name ="name" value ="philander"/> <property name ="age" value ="25"/> <target name ="example"> <echo message ="name: ${name}, age: ${age}"/> </target> </project>
上例中用戶設置了名為name 和age的兩個屬性,這兩個屬性設置後,在下文中可以通過 ${name} 和 ${age} 分別取得這兩個屬性值。