如何检查pom.xml以获取更新的依赖项

Jes*_*sen 46 maven-2 dependency-management

我对Maven和pom.xml很新.有没有办法可以找出哪些依赖项已经过时,以便我可以更新我的pom.xml中的版本号.

例如,在其他语言中,Ruby有一个命令gem list outdated,它给我一个我可以更新的依赖项列表(rubygems)

我正在使用IntelliJ Idea,如果这可以帮助.

Pas*_*ent 83

您可以使用Versions Maven插件执行此操作.检查以下目标:

这是一个示例输出(取自示例):

检查新的依赖关系更新

display-dependency-updates目标将检查项目中使用的所有依赖关系,并显示这些依赖与可用的更新版本的列表.

以下是一些示例:

svn checkout http://svn.codehaus.org/mojo/trunk/mojo/build-helper-maven-plugin build-helper-maven-plugin
cd build-helper-maven-plugin

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] ------------------------------------------------------------------------

Pom安装

<plugin>
  <groupId>org.codehaus.mojo</groupId>
  <artifactId>versions-maven-plugin</artifactId>
  <version>2.5</version>
</plugin>
Run Code Online (Sandbox Code Playgroud)

  • 将所有版本"外部化"到父POM(最佳实践IMO)中的Maven属性的多模块项目可能最好在父模块中使用`mvn -N版本:display-property-updates`. (4认同)
  • 我的项目有一个 &lt;dependencyManagement&gt; 部分,其中包含 spring boot 的“spring-boot-dependencies”工件。因此,display-plugin-updates 目标显示了大量我什至不使用的工件的潜在更新(即,当我执行 mvn dependency:tree 时它们不显示)。这是一种忽略这种依赖关系的方法吗? (2认同)

Ali*_*ahi 10

如果您想快速完成,可以使用www.versioneye.com网站.

在那里,您可以定义您的项目和上传项目pom.xml,该网站还将定期向您发送电子邮件,通知您有关新的更新.

您还可以提及要检查更新的库.

我不知道它是否自动与maven repo完全同步,但我总是发现它的lib版本是更新的.

更新:

项目关闭6年后:(

所以mvn versions:display-dependency-updates似乎是选择.


8bi*_*kie 9

POM依赖关系对此并不明显.

为了您的方便:

<dependency>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>versions-maven-plugin</artifactId>
    <version>2.1</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

和存储库:

<repository>
    <id>Codehaus Mojo</id>
    <name>Codehaus Mojo</name>
    <url>https://nexus.codehaus.org/content/repositories/releases/</url>
</repository>
Run Code Online (Sandbox Code Playgroud)

  • 对于其他看到这个的人来说,这个回购网址现在是https://nexus.codehaus.org/content/repositories/releases/,在发布时,最新版本为2.1 (2认同)