为什么`**/*ant*`排除模式不起作用,但``**/*ant*/**`工作正常?

Geo*_*Geo 2 ant fileset

假设我的目标之一是:

<path id="files">
   <fileset dir="${env.DIRECTORY}" casesensitive="false">
     <include name="**/*.html"/>
     <exclude name="**/*ant*"/>
    </fileset>
</path>
Run Code Online (Sandbox Code Playgroud)

我想将所有html文件分组,除了包含字符串ant的文件.我上面写的方式,它不起作用.我也试过像这样指定排除:

<exclude name="*ant*"/>
Run Code Online (Sandbox Code Playgroud)

请注意,文件集的区分大小写已关闭.但是,如果我写:

<exclude name="**/*ant*/**"/>
Run Code Online (Sandbox Code Playgroud)

这确实有效.为什么第一版和第二版的排除不起作用?

Rav*_*pta 5

第一种和第二种情况不匹配,因为您正在搜索包含ant的目录名称

第三种情况匹配路径中包含ant元素的所有文件,包括ant作为文件名.

您也可以参考此Ant文档