project
getReference(
task
)
注意如果task還沒有運行就不會被生效(例如不設定屬性)如果你在隨後配置它你所作的一切都會被覆蓋
注意未來的Ant版本可能不會兼容這裡所提的屬性因為很有可能根本沒有task實例只有proxies
Properties
一個project可以有很多的properties可以在buildfile中用property task來設定或在Ant之外設定一個property有一個名字和一個值property可用於task的屬性值這是通過將屬性名放在${和}之間並放在屬性值的位置來實現的例如如果有一個property builddir的值是build這個property就可用於屬性值${builddir}/classes這個值就可被解析為build/classes
內置屬性
如果你使用了<property> task 定義了所有的系統屬性Ant允許你使用這些屬性例如${osname}對應操作系統的名字
要想得到系統屬性的列表可參考the Javadoc of SystemgetProperties
除了Java的系統屬性Ant還定義了一些自己的內置屬性
basedir project基目錄的絕對路徑 (與<project>的basedir屬性一樣)
antfile buildfile的絕對路徑
antversion Ant的版本
antprojectname 當前執行的project的名字由<project>的name屬性設定
antjavaversion Ant檢測到的JVM的版本 目前的值有 and
例子
<project name=MyProject default=dist basedir=>
<! set global properties for this build >
<property name=src value=/>
<property name=build value=build/>
<property name=dist value=dist/>
<target name=init>
<! Create the time stamp >
<tstamp/>
<! Create the build directory structure used by compile >
<mkdir dir=${build}/>
</target>
<target name=compile depends=init>
<! Compile the java code from ${src} into ${build} >
<javac srcdir=${src} destdir=${build}/>
</target>
<target name=dist depends=compile>
<! Create the distribution directory >
<mkdir dir=${dist}/lib/>
<! Put everything in ${build} into the MyProject${DSTAMP}jar file >
<jar jarfile=${dist}/lib/MyProject${DSTAMP}jar basedir=${build}/>
</target>
<target name=clean>
<! Delete the ${build} and ${dist} directory trees >
<delete dir=${build}/>
<delete dir=${dist}/>
</target>
</project>
[] [] [] [] [] []
From:http://tw.wingwit.com/Article/program/Java/ky/201311/29097.html