Ant:如果目录不';不存在?

Ant:如果目录不';不存在?,ant,Ant,我使用的是Ant1.8.1。如果目录不存在,如何忽略以下生成错误?我得到的错误是 BUILD FAILED /Users/davea/myco2-myco/build.xml:211: Directory does not exist: /Users/davea/myco2-myco/${mycousa.test.root} 该行是下面条款中的delete指令。本以为“erroronmissingdir”属性可以解决这个问题,但我想不是 <delete>

我使用的是Ant1.8.1。如果目录不存在,如何忽略以下生成错误?我得到的错误是

BUILD FAILED
/Users/davea/myco2-myco/build.xml:211: Directory does not exist: /Users/davea/myco2-myco/${mycousa.test.root}
该行是下面条款中的delete指令。本以为“erroronmissingdir”属性可以解决这个问题,但我想不是

    <delete>
            <fileset dir="${mycousa.test.root}" erroronmissingdir="false">
                    <include name="suite.html" />
            </fileset>
    </delete>

让我知道如何修改上述内容,以便即使目录不存在也不会出现错误


谢谢-Dave

我认为问题在于您正在处理的错误条件是创建文件集,而不是删除本身。查看关于删除任务的
failonerror
指令:

<delete failonerror="false">
            <fileset dir="${mycousa.test.root}" erroronmissingdir="false">
                    <include name="suite.html" />
            </fileset>
</delete>


参考资料:

这是ant中的一个bug(是的,但是如果erroronmissingdir是,那么文件集应该是“缺少/空的”,然后delete将不起任何作用(或者可能会抱怨文件集为空,但实际目录路径没有错误。下面的答案涵盖了这一点:Ant 1.8.1中有一个错误已修复。因此,从Ant 1.8.1开始,
erroronmissingdir=“false”
可以按预期工作,而不需要
failonerror=“false”
也会对有效错误产生负面影响(例如,用户没有对文件的写入权限)。这(将Ant更新为1.8.1+)应该是可接受的答案:与上面建议的
更改不同,此解决方案没有忽略有效故障的副作用(例如,如果目录存在,但用户无权从中删除文件)