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