这似乎应该是显而易见的,但我认为不是。鉴于:
- 以空格分隔的文件列表(或逗号分隔等)
- 列入白名单的
<patternset>模式
我如何想出一个<fileset>包含列表中与白名单模式匹配的所有文件的文件?
从列表中获取文件列表很容易:
<patternset id="the-patternset" 包括="${list.of.files}" />
<fileset id="the-fileset" dir="${basedir}">
<patternset refid="the-patternset" />
</文件集>
<pathconvert pathsep="${line.separator}" property="the-filelist" refid="the-fileset"/>
<echo>文件集:${the-filelist}</echo>
…会很高兴地生成一个文件集,其中包含${list.of.files}. 但添加各种过滤器:
<patternset id="the-filter">
<include name="includeme/**/*.java" />
<exclude name="excludeme/**/*.java" />
</模式集>
<patternset id="the-patternset" 包括="${list.of.files}" />
<fileset id="the-fileset" dir="${basedir}">
<patternset refid="the-patternset" />
<patternset refid="the-filter" />
</文件集>
<pathconvert pathsep="${line.separator}" property="the-filelist" refid="the-fileset"/>
<echo>文件集:${the-filelist}</echo>
…将列出模式集的并集——即所有匹配the-filter 或 the-patternset的文件。
如何生成一个文件集,其中包含${list.of.files} 匹配的文件the-patternset?