你可以用":“和”;"作为分隔符,指定类似PATH和CLASSPATH的引用。
Ant会把分隔符转换为当前系统所用的分隔符。
当需要指定类似路径的值时,可以使用嵌套元素。
一般的形式是<classpath>
<pathelement path="${classpath}" />
<pathelement location="lib/helper.jar" />
</classpath>
location属性指定了相对于project基目录的一个文件和目录,而path属性接受逗号或分号分隔的一个位置列表。
path属性一般用作预定义的路径--其他情况下,应该用多个location属性。
为简洁起见,classpath标签支持自己的path和location属性。所以:<classpath>
<pathelement path="${classpath}" />
</classpath>
可以被简写作:<classpath path="${classpath}"/>
也可通过元素指定路径。
构成一个fileset的多个文件加入path-like structure的顺序是未定的。<classpath>
<pathelement path="${classpath}" />
<fileset dir="lib">
<include name="**/*.jar" />
</fileset>
<pathelement location="classes" />
</classpath>
上面的例子构造了一个路径值包括:${classpath}的路径,跟着lib目录下的所有jar文件,接着是classes目录。
如果你想在多个task中使用相同的path-like structure,你可以用元素定义他们(与target同级),然后通过id属性引用。
path-like structure可能包括对另一个path-like structurede的引用(通过嵌套元素):<path id="base.path">
<pathelement path="${classpath}" />
<fileset dir="lib">
<include name="**/*.jar" />
</fileset>
<pathelement location="classes" />
</path>
<path id="tests.path">
<path refid="base.path" />
<pathelement location="testclasses" />
</path>
前面所提的关于的简洁写法对于也是有效的,如:<path id="tests.path">
<path refid="base.path" />
<pathelement location="testclasses" />
</path>
可写成:<path id="base.path" path="${classpath}"/>
命令行变量
有些task可接受参数,并将其传递给另一个进程。
为了能在变量中包含空格字符,可使用嵌套的arg元素。
Attribute Description Required value 一个命令行变量;可包含空格字符。只能用一个 line 空格分隔的命令行变量列表。
file 作为命令行变量的文件名;会被文件的绝对名替代。
path 一个作为单个命令行变量的path-like的字符串;或作为分隔符,Ant会将其转变为特定平台的分隔符。
例子<arg value="-l -a"/>
是一个含有空格的单个的命令行变量。<arg line="-l -a"/>
是两个空格分隔的命令行变量。<arg path="/dir;/dir2:\dir3"/>
是一个命令行变量,其值在DOS系统上为\dir;\dir2;\dir3;在Unix系统上为/dir:/dir2:/dir3