所以我在一个目录中有一个包含文件的文件集:
<fileset id="modules" dir="${modules.dir}">
<include name="core*.jar"/>
<include name="fileset*.jar"/>
<include name="upgrader*.jar"/>
<include name="hello*.jar"/>
</fileset>
但是,这些文件被复制到$ {lib.dir}中,即$ {lib.dir}包含core * .jar,fileset * .jar等的副本。 如何删除这些复制的文件?
另外,请注意我不能使用像ant-contrib这样的外部库。
答案 0 :(得分:3)
使用PatternSet定义名称集。然后在任意数量的FileSet中引用PatternSet。
<patternset id="module.patterns">
<include name="core*.jar"/>
<include name="fileset*.jar"/>
<include name="upgrader*.jar"/>
<include name="hello*.jar"/>
</patternset>
<fileset id="modules" dir="${modules.dir}" >
<patternset refid="module.patterns"/>
</fileset>
<强>更新强>
鉴于您的评论只想要原始文件,请尝试以下方法:
<pathconvert pathsep="," property="flattened.modules" refid="modules">
<mapper type="flatten" />
</pathconvert>
<filelist id="libmodules" dir="${lib.dir}" files="${flattened.modules}"/>