Xml 如果文件集排除为空,ANT delete将失败

Xml 如果文件集排除为空,ANT delete将失败,xml,jenkins,ant,fileset,Xml,Jenkins,Ant,Fileset,如果目录包含FOO.xml或BAR.xml(或两者都包含),此ANT delete任务可以完美运行,但如果它们不存在,则不会成功返回 <delete includeemptydirs="true" followsymlinks="false"> <fileset dir="${apache.base}" erroronmissingdir="false"> <include name="**/*"/> <exclu

如果目录包含FOO.xml或BAR.xml(或两者都包含),此ANT delete任务可以完美运行,但如果它们不存在,则不会成功返回

<delete includeemptydirs="true" followsymlinks="false">
    <fileset dir="${apache.base}" erroronmissingdir="false">
        <include name="**/*"/>
        <exclude name="**/FOO.xml **/BAR.xml"/>
     </fileset>
</delete>  


无论文件集的exclude部分是否为空,是否有一种方法可以让它工作?

您的exclude模式包含不正确的语法。当使用嵌套的
包含
排除
元素时,需要单独列出文件名模式,例如:

<delete includeemptydirs="true" followsymlinks="false">
    <fileset dir="${apache.base}" erroronmissingdir="false">
        <exclude name="**/FOO.xml"/>
        <exclude name="**/BAR.xml"/>
        <include name="**/*"/>
    </fileset>
</delete>

虽然这可能是一个单独的问题,但这并不能解决我的问题。如果FOO.xml或BAR.xml均不存在,则上述代码仍会导致失败;如果FOO.xml或BAR.xml存在,则我的代码(可能存在语法错误)功能正常。@MrS您能编辑您的问题以包含您收到的确切错误消息吗?我无法重现您的问题。我已经添加了错误以及问题通过jenkins发生的事实。我不确定这是否会起作用。我是个白痴,当我试图实现你建议的更改时,我从未实际部署过它们。他们工作。非常感谢你。
<delete includeemptydirs="true" followsymlinks="false">
    <fileset
        dir="${apache.base}"
        includes="**/*"
        excludes="**/FOO.xml,**/BAR.xml"
    />
</delete>