これを試して...
<project>
<mkdir dir="lib"/>
<copy todir="lib"
verbose="true">
<fileset dir="jars/">
<include name="*.jar"/>
</fileset>
<mapper type="regexp"
from="^(.+?)-[0-9].*$"
to="\1.jar"/>
</copy>
</project>
regex
マッパーでは、パラメーターは from
名前全体と一致する必要があります。+?
非貪欲なパターン マッチャーを使用します。これは、任意の文字.
を意味するパターンに一致しますが、貪欲には一致しません。通常、これは行全体に一致します。ただし、ダッシュに続いて数字が見つかったのは初めてです。
この問題は、jar にバージョン番号がない場合、または数値以外の値で始まる場合に発生します。私は正常にこれらを行うことができます:
foo-2.3.2.jar
foo-2r1.jar
しかし、これらではありません:
foo-alpha.jar
foo.jar
そのため、パターンを少し調整しました。
<project>
<mkdir dir="lib"/>
<copy todir="lib"
verbose="true">
<fileset dir="jars/">
<include name="*.jar"/>
</fileset>
<mapper type="regexp"
from="^(.+?)-[0-9]*.*\.jar$"
to="\1.jar"/>
</copy>
</project>
$ ant
[mkdir] Created dir: lib
[copy] Copying 5 files to lib
[copy] Copying jars/bar-3.4.5.jar to lib/bar.jar
[copy] Copying biff-86.4.2.jar to lib/biff.jar
[copy] Copying jars/boff-2.31.2.jar to lib/boff.jar
[copy] Copying jars/foo-1.2.3.jar tolib/foo.jar
[copy] Copying jars/foo-bar-3.3.2.3.jar to lib/foo.jar
あのラストはトラブルメーカー…
これを 2 つのコピーで実行する価値があるかもしれません。1 つはバージョン番号が見つかった場合の処理、もう 1 つはバージョン番号のない jar の処理です。