Java 使用常春藤API获取依赖项的最新版本?
我们有一个简单的常春藤存储库,由内部服务器托管(提供JAR及其XML常春藤描述符的Apache httpd) 我现在需要以编程方式确定repo中依赖项的最新版本。因此,如果我们有两种版本的Mockito,我们的回购协议可能如下所示:Java 使用常春藤API获取依赖项的最新版本?,java,versioning,ivy,dependency-management,Java,Versioning,Ivy,Dependency Management,我们有一个简单的常春藤存储库,由内部服务器托管(提供JAR及其XML常春藤描述符的Apache httpd) 我现在需要以编程方式确定repo中依赖项的最新版本。因此,如果我们有两种版本的Mockito,我们的回购协议可能如下所示: mockito/ ==> organisation mockito-all ==> module 1.9.4/
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代码
有什么想法吗?提前谢谢 我相信您可以使用
latest.integration
revision值来指定所需的绝对最新版本。例如,指定您的常春藤依赖项,如下所示:
<dependency org="mockito" name="mockito-all" rev="latest.integration" />
如果不需要“edge”版本,您还可以指定
latest.milestone
或latest.release
。下面是关于rev
值的一个很好的解释:所以我发现你的问题也在做同样的事情,经过一些研究发现,在Ivy 2.4中,这样的事情是存在的
以下是一个示例步骤:
<target name="ivy.outdated" description="Check ivy for outdated jars">
<ivy:resolve/>
<ivy:checkdepsupdate showTransitive="false" revisionToCheck="latest.release"/>
</target>
谢谢@Polaris8787,但我不是说在构建时。我需要构建一个Java工具来扫描我们的常春藤回购协议,并告诉我每个模块的最新版本号,然后将它的定制报告放在一起。所以我需要在Java代码中直接调用一些Ivy任务,然后使用Ivy API以字符串形式获取版本号。@user1768830完成了吗?我在找类似的东西。我不希望艾薇只使用“最新的”。我想手动指定每个版本,但我想要一个报告,上面写着“SomeJar的新版本可用”,这样我就可以决定是否升级。Ivy已经获得了这些信息,以便解决动态规范,如“0.0+”——我只希望它能提供给我,以便我可以做出决定。