你可以使用<property>標籤來定義屬性,例如:
<property name="src.dir" value="src"/>
<property name="bin.dir" value="bin"/>
<property name="bak.dir" value="bak"/>
<property name="bin.dir" value="bin"/>
<property name="bak.dir" value="bak"/>
屬性都是由name/value組成的,如果在執行ant指令時沒有特別指定屬性值,預設使用value上定義的值,如果要指定某個屬性,則可如下執行ant指令,例如指定bin.dir:
ant -Dbin.dir="WEB-INF/classes"
也可以使用<property>取得環境變數,例如下面的建構檔案嘗試取得JAVA_HOME並顯示之,如果沒有設定,則顯示沒有設定該環境變數的訊息:
<project name="envSample" default="deploy" basedir=".">
<property environment="env"/>
<target name="checkJavaHome" unless="env.JAVA_HOME">
<fail message="JAVA_HOME must be set!"/>
</target>
<target name="compile">
</target>
<target name="deploy" depends="checkJavaHome,compile">
<echo>Deploying to \${env.JAVA_HOME}</echo>
</target>
</project>
<property environment="env"/>
<target name="checkJavaHome" unless="env.JAVA_HOME">
<fail message="JAVA_HOME must be set!"/>
</target>
<target name="compile">
</target>
<target name="deploy" depends="checkJavaHome,compile">
<echo>Deploying to \${env.JAVA_HOME}</echo>
</target>
</project>
透過設定一個屬性檔案,之後在建構檔案中載入它的方法如下:
<property file="local.properties">.
也可以透過ant指令執行建構檔案時將屬性設定為系統變數,例如:
<sysproperty key="JAVA_HOME" value="\${javaHome}"/>
還有一些方法可以取得系統屬性,例如下面的方式可以取得使用者目錄:
<echo message="user.home = \${user.home}"/>
可以使用<path>來設定路徑參考,使用<pathelement>來指定目錄或檔案。例如:
<path id="1">
<pathelement location="."/>
<pathelement location="./lib/junit.jar"/>
</path>
<pathelement location="."/>
<pathelement location="./lib/junit.jar"/>
</path>
上面的例子也可以使用分號設定一系列位置,設定:
<path id="1">
<pathelement location=".;./lib/junit.jar"/>
</path>
<pathelement location=".;./lib/junit.jar"/>
</path>
您也可以使用<fileset>來指定某個目錄下的檔案,例如:
<path id="2">
<fileset dir="lib">
<include name="**/*.jar"/>
</fileset>
</path>
<fileset dir="lib">
<include name="**/*.jar"/>
</fileset>
</path>
<include>或<exclude>標籤用來包括或排除檔案(或是可以使用includes、excludes屬性),可以在上面使用表示式來比對,*表示零個或多個符合,?表示符合一個字元。
關於設定CLASSPATH的問題,就可以參考先前設定的路徑,設定CLASSPATH是使用<classpath>,例如在進行<javac>任務時,可以如下參考之前設定的路徑:
<javac srcdir="./src" destdir="./classes">
<classpath refid="1"/>
</javac>
<classpath refid="1"/>
</javac>
也可以直接於<classpath>中設定<pathelement>。例如:
<javac srcdir="./src" destdir="./classes">
<classpath refid="1">
<pathelement location="."/>
<pathelement location="./lib/junit.jar"/>
</classpath>
</javac>
<classpath refid="1">
<pathelement location="."/>
<pathelement location="./lib/junit.jar"/>
</classpath>
</javac>