Ant build 文件中的 Path-like Structures

你可以用":“和”;"作为分隔符,指定类似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