如何使用模式集过滤文件列表?

时间:2013-02-06 19:12:39

标签: ant

这似乎应该是显而易见的,但我认为不是。给出:

  • 以空格分隔的文件列表(或逗号分隔等)
  • <patternset>列入白名单的图案

如何提供包含列表中与白名单模式匹配的所有文件的<fileset>

从列表中获取文件列表非常简单:

<patternset id="the-patternset" includes="${list.of.files}" />
<fileset id="the-fileset" dir="${basedir}">
    <patternset refid="the-patternset" />
</fileset>
<pathconvert pathsep="${line.separator}" property="the-filelist" refid="the-fileset"/>
<echo>fileset: ${the-filelist}</echo>

...将很高兴地生成包含${list.of.files}中所有文件的文件集。但添加了各种过滤器:

<patternset id="the-filter">
    <include name="includeme/**/*.java" />
    <exclude name="excludeme/**/*.java" />
</patternset>

<patternset id="the-patternset" includes="${list.of.files}" />
<fileset id="the-fileset" dir="${basedir}">
    <patternset refid="the-patternset" />
    <patternset refid="the-filter" />
</fileset>
<pathconvert pathsep="${line.separator}" property="the-filelist" refid="the-fileset"/>
<echo>fileset: ${the-filelist}</echo>

...将列出模式集的并集,即所有匹配the-filter the-patternset的文件。

如何生成包含${list.of.files} 匹配the-patternset的文件的文件集?

0 个答案:

没有答案