我正在尝试使用ANT 1.6.5删除文件列表,但是我必须提出一个条件,如果只有文件存在删除它,否则将构建失败错误丢弃给用户,我从这里的论坛上摘下了以下内容,但是当我在环境中相应修改时,它就无法正常工作。
<property name="file.list" value="test1.props,test2.props,test3.props"/>
<target name="file.missing" depends="validate.dir">
<echo message = " The Filelist is : ${file.list} "/>
<condition property="is.missing">
<resourcecount when="ne" count="0">
<difference id="is.missing">
<intersect>
<filelist id="required" dir="${target.location}" files="${file.list}"/>
<fileset id="existing" dir="${target.location}" includes="*.*"/>
</intersect>
<filelist refid="required"/>
</difference>
</resourcecount>
</condition>
<fail if="is.missing" message= " File ${toString:missing} is missing from the list of files provided for removing, please recheck and submit correct "/>
</target>
<target name = "clean" unless="is.missing" depends="file.missing">
<delete>
<fileset dir="${target.location}" includes = "${file.list}"/>
</delete>
</target>
我在此代码中遇到了编译时间错误,错误是类org.apache.tools.ant.taskdefs.conditionTask不支持嵌套的" resourcecececon"元素。
可以指导我这个
<resourcecount>
在ANT 1.7中引入。
此外,诸如<difference>
和<intersect>
之类的资源收集也不可用,直到ANT 1.7也可用。
简单地使用删除任务与嵌套的文件集和属性failonError =" true"就足够了。
<delete failonerror="true">
<fileset dir="some/path"/>
</delete>
如果目录不存在,您将获得BUILD FAILED
。