为Ant';指定与模式匹配的jar;什么是java任务?
我有一个jar文件,它将匹配特定的模式,但包含一个版本号,该版本号将随着时间的推移而改变(它使用依赖关系管理器放置在那里)。它是该目录中唯一的jar文件。有没有一种方法可以调用Ant的为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 。。。以后可能会是这样的: /
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
任务中简单地引用该属性