【问题标题】:Specify a jar matching a pattern for Ant's java task?为 Ant 的 java 任务指定一个匹配模式的 jar?
【发布时间】:2015-05-23 00:28:23
【问题描述】:

我有一个匹配特定模式的 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 任务不支持 &lt;include&gt; 嵌套标签,例如其他一些任务)。

...经过进一步研究,pathconvert 看起来可能会有所帮助。不过,我对机制还不够熟悉,无法了解如何将它们拼凑在一起。

【问题讨论】:

    标签: java ant jar build


    【解决方案1】:

    经过反复试验,我找到了使用 filesetpathconvert 的解决方案 - 这是我的简化解决方案:

    <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" />
    
    1. 我使用fileset 来指定罐子的样式和位置。
    2. 我使用pathconvert 将找到的 jar 文件引用放入属性中。
    3. 然后我可以在我的 java 任务中简单地引用该属性。

    【讨论】:

      猜你喜欢
      • 2013-08-29
      • 1970-01-01
      • 2016-01-29
      • 1970-01-01
      • 1970-01-01
      • 2012-05-06
      • 2011-05-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多