使用Ant'copy'任务时,如何匹配部分版本字符串?

时间:2010-05-26 14:42:27

标签: ant

我有一个像这样的目录结构

client/lib
a.jar
b-4.3.jar
c-1.2.jar
d-4.3.jar
e.jar

我需要复制罐子 - 有些没有版本,有些没有。 我拥有的唯一信息是版本号,并存储在变量中。

我拥有的版本号在一个属性中,有三个字段 - '4.3.1' 罐子的版本只是属性值中的前两个字段(在本例中为4.3)。 我需要所有以我的财产所拥有的两位数字开头的罐子,以及一些没有版本的罐子。 例如,从上面的目录结构我需要:

b-4.3.jar
d-4.3.jar
e.jar

我该怎么做?

1 个答案:

答案 0 :(得分:0)

您可以考虑使用antcontrib propertyregex任务。也许是这样的:

<property name="version" value="4.3.1" />
<propertyregex override="yes" property="version2" input="${version}"
               regexp="(.*).([^.]+)"
               replace="\1" />

<fileset id="my_jars" dir="client/lib">
    <include name="*${version2}.jar" />
    <include name="e.jar" />
</fileset>

<copy todir="to_dir">
    <fileset refid="my_jars" />
</copy>