2

所以我有一个文件集,其中包含一个目录中的文件:

<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 这样的外部库。

4

1 回答 1

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}"/> 
于 2013-01-11T20:11:53.480 回答