我有一个与某个模式匹配的jar文件,但是包含一个随时间变化的版本号(它使用依赖项管理器放置在那里)。它是该目录中唯一的jar文件。有没有办法可以使用目录和(如果需要)模式来调用Ant的java
任务来查找jar文件而不是静态指定文件名?每次版本更改时,我都不必更新build.xml。
所以给出这样的东西:
/path/to/some/jarfile-3.24.8.jar
......后来可能会这样:
/path/to/some/jarfile-4.3.2.jar
我可以达到相当的效果吗?
<java jar="path/to/some/jarfile-*.jar" fork="true" spawn="true" />
思想
我想也许我可以使用fileset
任务进行操作,但我找不到从java任务引用它的方法(并且java任务不支持{{1}嵌套标签就像其他一些任务一样)。
......经过进一步研究,<include>
看起来可能有所帮助。我不熟悉机制,看看如何将事情拼凑在一起。
答案 0 :(得分:0)
经过一些反复试验,我找到了使用fileset
和pathconvert
的解决方案 - 这是我的简化解决方案:
<fileset dir="/path/to/some" id="jarfile-path-contents" includes="jarfile-*.jar" />
<pathconvert property="file.jarfile" refid="jarfile-path-contents" />
<java jar="${file.jarfile}" fork="true" spawn="false" />
fileset
来指定jar的模式和位置。pathconvert
将找到的jar文件引用放入属性中。java
任务中简单地引用该属性。