这似乎应该是显而易见的,但我认为不是。鉴于:
- 以空格分隔的文件列表(或逗号分隔等)
- 列入白名单的
<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
?