Ant任务jar.destfile中的解决方法通配符

时间:2016-02-26 20:51:47

标签: java maven ant jar

我使用Ant来更新Jar文件,但Jar的名称经常更改。我想到在* Ant任务的destfile属性中使用通配符(即jar)。如果这样做,这将允许Ant脚本保持不变,即使Jar文件名更改。例如......

<jar update="true" destfile="myjar*.jar">
   <zipfileset dir="classes"/>
</jar>

不幸的是,*不受支持。我收到以下错误:

The filename, directory name, or volume label syntax is incorrect

如何更新名称更改的Jar文件?

从技术上讲,Ant脚本正在使用maven-antrun-plugin运行,因此Maven解决方案也是可以接受的。

1 个答案:

答案 0 :(得分:2)

您的方法存在的问题是"myjar*.jar"可以选择多个JAR。

解决方法是将匹配给定名称的第一个JAR查找到所需的文件夹中:这将对应于所需的JAR(因为我们知道只有一个)。然后,您可以使用该JAR进行更新。

示例配置如下。它在first资源定位器的帮助下检索第一个JAR。

<first id="jarToUpdate">
    <fileset dir="/path/to/wanted/directory" includes="myjar*.jar" />
</first>
<jar update="true" destfile="${toString:jarToUpdate}">
   <zipfileset dir="classes"/>
</jar>