我正在使用 Ant 更新 Jar 文件,但 Jar 的名称经常更改。 我想使用通配符(即 *
) 在 jar
Ant 任务的 destfile
属性中。 如果这样做,这将允许 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 解决方案也是可以接受的。
您的方法的问题在于"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>