Maven检查存储库中的更新依赖项


167

是否有Maven插件可让您检查存储库中是否有较新版本的依赖项?

假设您正在使用版本1.2的依赖项X。现在,新的X版本随版本1.3一起发布。我想基于项目中使用的依赖项,哪些依赖项具有较新的版本。


Answers:


284

Maven的版本插件和它的display-dependency-updates魔力,你在找什么:

mvn versions:display-dependency-updates

输出结果如下所示:

[INFO] ------------------------------------------------------------------------
[INFO] Building Build Helper Maven Plugin
[INFO]    task-segment: [versions:display-dependency-updates]
[INFO] ------------------------------------------------------------------------
[INFO] [versions:display-dependency-updates]
[INFO]
[INFO] The following dependency updates are available:
[INFO]   org.apache.maven:maven-artifact ........................ 2.0 -> 2.0.9
[INFO]   org.apache.maven:maven-plugin-api ...................... 2.0 -> 2.0.9
[INFO]   org.apache.maven:maven-project ....................... 2.0.2 -> 2.0.9
[INFO]   org.codehaus.plexus:plexus-utils ....................... 1.1 -> 1.5.6
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 17 seconds
[INFO] Finished at: Fri Aug 15 10:46:03 IST 2008
[INFO] Final Memory: 10M/167M
[INFO] ------------------------------------------------------------------------

谢谢Pascal。那就是我想要的。不过,对于Spring 3.0.1.RELEASE,它报告的是2.5.6的较新版本。也许是插件中的错误?
froethen

1
@Felix不客气。关于Spring工件,我想知道问题是否不是由于Spring没有遵循“规则”:版本应该是3.0.1-RELEASE,而不是3.0.1.RELEASE。换句话说,我不确定这是一个错误(我是说,当然,我希望该插件也报告3.0.1.RELEASE为较新版本,但我不确定这会被视为错误)。
Pascal Thivent

1
检查更新maven-plugin-api还可以用于检查Maven本身的较新版本,因为每个Maven版本都会发布此依赖项的新版本。
Tunaki 2015年

很高兴知道。但是,当我们构建项目时,有没有一种方法可以显示此报告,而不必显式键入该命令?
弗雷德里克(Frederic)

33

如果要在Maven Central上有较新的工件版本时接收电子邮件通知,则可以在工件侦听器上创建一个帐户,然后选择要关注的工件。
您可以手动搜索工件,也可以直接上载pom.xml。

您会定期收到这样的通知(目前有英语和法语):

Maven工件监听器


22

VersionEye Maven插件在做同样的:versioneye_maven_plugin

VersionEye也可以在Maven存储库上通知您有关新版本的信息。它是一种与语言无关的工具,除了Java外,它还支持其他7种语言。除了简单的关注/通知功能外,它还可以直接监视GitHub和BitBucket存储库,并通知您项目中过时的依赖项。

在此处输入图片说明

还有一个REST JSON API,用于工具集成。

顺便说一句,我是启动这个项目的家伙。如果您有任何问题,请告诉我。


1
该项目已关闭:(
Alireza Fattahi


1

在具有大量依赖关系的项目中,有时您会将版本保留在属性部分中。

    <properties>
        <assertj.version>3.15.0</assertj.version>
        <aws-sdk.version>1.11.763</aws-sdk.version>
        <cxf.version>3.3.6</cxf.version>

如果您只对这些版本的更新感兴趣,则可以使用以下命令

mvn versions:display-property-updates

这提供了更简洁的视图,并且仅返回您需要在属性部分中更新的版本。


被低估的答案。
ROMANIA_engineer
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.