如果fileset exclude为空,则ANT删除失败

时间:2018-04-02 17:47:21

标签: xml jenkins ant fileset

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

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

无论文件集的排除部分是否为空,有没有办法让它工作?

1 个答案:

答案 0 :(得分:1)

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

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

但是,如果您使用fileset的{​​{1}}或includes属性,则以逗号分隔的列表实际上会有效;

excludes