Maven 更新 POM 中的依赖项

是否有任何预先存在的 Maven 插件或命令来更新 POM 中的依赖项? 示例: (如果这在我的 POM 中)

<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.3</version>
</dependency>

是否有一个命令或插件,我可以运行它来更新依赖:

<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.4</version>
</dependency>
88605 次浏览

不,没有。幸好没有。这样的工具如何知道如何升级您的依赖项?

由于在较小版本之间可能发生破坏,这将是一个灾难等待发生。


但你总是可以为此 写你自己的魔咒

  • 从 Maven 存储库获取最新版本的依赖项
  • 与 pom.xml 的版本进行比较
  • 重写 pom.xml
  • 运行 mvn test
  • 利润!

你可以在你的父 pom 中使用 endencyManagement:

<dependencyManagement>
<dependencies>
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.4</version>
</dependency>
</dependencies>
</dependencyManagement>

这样,您只需要在父 POM 中更改版本一次

我更喜欢使用 显示-依赖-更新; 这将生成一个可以升级依赖项的报告,但是允许您自己修改 POM。还有一个针对插件的 Display-plugin-update 显示-插件-更新命令。

就个人而言,我认为在 maven 中应该有一个额外的参数,允许您添加到 pom.xml。

http://maven.40175.n5.nabble.com/Is-there-any-maven-plugin-to-add-dependency-to-existing-pom-xml-td2839092.html#a5772853的帖子

在这里,您可以向 pom.xml 文件添加以下内容:

<project>
...
<build>
...
<plugins>
...
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>versions-maven-plugin</artifactId>
<version>2.1</version>
</plugin>
...
</plugins>
...
</build>
...
</project>

然后通过 version set 命令备份 pom.xml 文件:

mvn versions:set -DnewVersion=9.9.9

运行最新版本:

mvn versions:use-latest-versions

并区分 pom.xml 文件、 pom.xml 和 pom.xml.versionsBackup

我也遇到过同样的问题,最终通过编写 bash 脚本解决了这个问题。

GitHub 存储库-更新 POM Shell

这是一个 shell 脚本,允许您直接从命令行更新对不同模块的依赖项。

当您需要同时更新不同模块上的一个或多个依赖项时,它尤其有用。