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>
[] [] [] [] [] []