Ant 在运行一些任务的时候需要用<classpath>指定类路径.<classpath>可以内嵌 <pathelement>.需要注意的是
<pathelement path="${project.jar.path}> 里面path指向的不是一个预先定义的<path>,而是一个符合classpath规则的property.
1,正确的例子:
<property name="project.jar.path" value="D:/temp/temp.jar;D:/temp/temp1.jar" />
<classpath id="tcls">
<pathelement path="${project.jar.path}" />
</classpath>
2,如果误认为path应该指向一个预先定义的path是不正确的.
<path id="testTask.classpath">
<fileset dir="${project.lib.path}">
<include name="**/*.jar" />
</fileset>
</path>
<classpath id="tcls">
<pathelement path="${testTask.classpath}" />
</classpath>
如果想在<classpath>里引用预先定义好的path,应该如下:
<classpath id="tcls">
<path refid="testTask.classpath" />
</classpath>
pathelement的path指定的是一个预先定义的property或者一个符合classpath规则的字符串,
location指定的是一个jar文件或者一个目录.
<property name="project.jar.path" value="D:/temp/temp.jar;D:/temp/temp1.jar" />
<classpath>
<pathelement path="${project.jar.path}" />
<pathelement location="lib/helper.jar"/>
</classpath>
classpath内嵌的元素除了pathelement和path之外,还可以是fileset,dirset和filelist.
<path id="cls.path.ref">
<fileset dir="lib" includes="*.jar" />
</path>
<filelist id="third-party_jars" dir="${jar.dir}"files="foo.jar, bar.jar"/>
<classpath>
<pathelement path="d:/temp/temp.jar" />
<path refid="cls.path.ref" />
<fileset dir="lib">
<include name="**/*.jar" />
</fileset>
<pathelement location="classes" />
<dirset dir="${build.dir}">
<include name="apps/**/classes" />
<exclude name="apps/**/*Test*" />
</dirset>
<filelist refid="third-party_jars" />
</classpath>
转自:http://blog.csdn.net/kkdelta/article/details/5684228