在蚂蚁删除文件列表中,仅当它们存在时



我正在尝试使用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

最新更新