-
ant可以使用path和classpath结构指明路径。
-
path和classpath可以包含内嵌的元素,类似下面的通用形式:
<classpath> <pathelement path="${classpath}"/> <pathelement location="lib/helper.jar"/> </classpath> <path> <pathelement path="${classpath}"/> <pathelement location="lib/helper.jar"/> </path> -
pathelement元素的location 属性指明了相对于项目基目录的一个单独的文件或者目录、或者一个绝对的文件名
-
而pathelement元素的path属性则接受用冒号、或者分号分割的多个位置列表,path属性目的是用来指明预先定义的路径的。
-
在任何情况下,如果有多个路径,建议优先使用多个location属性来指明。
-
作为一种快捷方式,classpath标记支持它本身带有path 和 location属性。例如下面的片段:
<classpath> <pathelement path="${classpath}"/> </classpath>
可以缩写为:
<classpath path="${classpath}"/>
-
类似,作为一种快捷方式,path标记支持它本身带有path 和 location属性。例如下面的片段:
<path id="base.path"> <pathelement path="${classpath}"/> </path>
可以缩写为:
<path id="base.path" path="${classpath}"/>
-
path和classpath结构内可以包含一个或者多个资源集合,例如:
<path id="jaxws.classpath"> <fileset dir="${lib.home}"> <include name="*.jar"/> <exclude name="j2ee.jar"/> </fileset> </path>
-
如果几个任务要用到相同的path-like结构,可以在跟target相同的层级上用path结构定义,并且定义id属性,在其它的任务中就可以使用refid属性引用该id属性。例如:
<path id="jaxws.classpath"> <fileset dir="${lib.home}"> <include name="*.jar"/> <exclude name="j2ee.jar"/> </fileset> </path> <taskdef name="annotationProcessing" classname="com.sun.tools.ws.ant.AnnotationProcessingTask"> <classpath refid="jaxws.classpath"/> </taskdef> -
一个path-like结构可以包含对其它path-like结构的引用。例如:
<path id="base.path"> <pathelement path="${classpath}"/> <fileset dir="lib"> <include name="**/*.jar"/> </fileset> <pathelement location="classes"/> </path> <path id="tests.path" cache="true"> <path refid="base.path"/> <pathelement location="testclasses"/> </path>