使用Ivy API获取最新版本的依赖项?

时间:2013-08-29 17:53:59

标签: java versioning ivy dependency-management

我们有一个简单的Ivy存储库,我们托管一个内部服务器(Apache httpd提供JAR及其XML Ivy描述符)。

我现在需要以编程方式确定我们的repo中最新版本的依赖项。因此,如果我们有两个版本的Mockito,我们的回购可能看起来像:

mockito/                       ==>    organisation
    mockito-all                ==>    module
        1.9.4/                 ==>    revision #
            mockito-all-1.9.4.jar
            mockito-all-1.9.4-ivy.xml
        1.9.5/
            mockito-all-1.9.5.jar
            mockito-all-1.9.5-ivy.xml

如果从Java中我可以使用Ivy来确定“1.9.5”是我们所拥有的mockito/mockito-all模块的最新版本,那将是很好的。

这可能不是Ant任务,而是可能是使用ivy.jar中存在的类的一些自定义Java代码。

有什么想法吗?提前谢谢!

2 个答案:

答案 0 :(得分:0)

我相信您可以使用latest.integration修订版值来指定所需的绝对最新版本。例如,像这样指定你的Ivy依赖:

<dependency org="mockito" name="mockito-all" rev="latest.integration" />

如果您不想要“边缘”版本,也可以指定latest.milestonelatest.release。以下是对rev值的详细解释:http://ant.apache.org/ivy/history/latest-milestone/ivyfile/dependency.html

答案 1 :(得分:0)

所以我发现你的问题想要做同样的事情,经过一些研究发现在Ivy 2.4中存在这样的事情。

http://ant.apache.org/ivy/history/latest-milestone/use/checkdepsupdate.html

以下是示例步骤:

<target name="ivy.outdated" description="Check ivy for outdated jars">
    <ivy:resolve/>
    <ivy:checkdepsupdate showTransitive="false" revisionToCheck="latest.release"/>
</target>