我使用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解决方案也是可以接受的。
答案 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>