2

したがって、1 つのディレクトリにファイルを含むファイルセットがあります。

<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を使用して、名前のセットを定義します。次に、そのPatternSetを任意の数のFileSetで参照します。

<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 に答える