为Ant';指定与模式匹配的jar;什么是java任务?

为Ant';指定与模式匹配的jar;什么是java任务?,java,ant,jar,build,Java,Ant,Jar,Build,我有一个jar文件,它将匹配特定的模式,但包含一个版本号,该版本号将随着时间的推移而改变(它使用依赖关系管理器放置在那里)。它是该目录中唯一的jar文件。有没有一种方法可以调用Ant的java任务,使用目录和(如果需要)模式来查找jar文件,而不是静态地指定文件名?我不希望每次版本更改时都要更新build.xml 考虑到这样的情况: /path/to/some/jarfile-3.24.8.jar /path/to/some/jarfile-4.3.2.jar 。。。以后可能会是这样的: /

我有一个jar文件,它将匹配特定的模式,但包含一个版本号,该版本号将随着时间的推移而改变(它使用依赖关系管理器放置在那里)。它是该目录中唯一的jar文件。有没有一种方法可以调用Ant的
java
任务,使用目录和(如果需要)模式来查找jar文件,而不是静态地指定文件名?我不希望每次版本更改时都要更新build.xml

考虑到这样的情况:

/path/to/some/jarfile-3.24.8.jar
/path/to/some/jarfile-4.3.2.jar
。。。以后可能会是这样的:

/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" />


思想

我在想也许我可以使用
文件集
任务来装配一些东西,但是我找不到从java任务中引用它的方法(java任务不像其他任务那样支持
嵌套标记)


。。。经过进一步研究,
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
    任务中简单地引用该属性