在 POM 中更新依赖版本

Posted

技术标签:

【中文标题】在 POM 中更新依赖版本【英文标题】:Updating Dependency Version in POM 【发布时间】:2019-03-11 10:24:30 【问题描述】:

一旦构建了依赖项的发布,自动更新 pom.xml 中的依赖项版本的最佳方法是什么。

示例: A - 模块项目 B - 使用项目 A 作为依赖项目。

一旦构建了 A 的新版本,我想自动更新 pom.xml 中 A 的版本。

这可以在多个项目中实现吗?

我们正在使用 jenkins 进行 CI

问候, 阿德南汗

【问题讨论】:

如果你已经使用了maven-release-plugin,那么版本的更新会完成吗?我错过了什么吗? 依赖项和父项是独立的模块并且具有不同的存储库路径。在我的情况下,如果我正在为依赖项构建一个版本并且新版本更新到 1.1,我希望这个版本能够自动更新使用这个的父模块和其他模块。截至目前,我们有一个脚本可以从父模块中检查代码并更新 git 上的更新版本。 【参考方案1】:

您可以致电mvn versions:use-releases,然后在发布前对 Jenkins 进行提交。这会将所有快照版本替换为发布版本(如果存在)。

【讨论】:

感谢回复,我不确定 mvn version 将如何自动更新依赖版本和父 pom 和其他模块,因为它们具有不同的存储库路径。我们正在拉取父代码并更新依赖版本并推送代码,以便可以完成其他模块的发布构建。 我的建议:在构建 B 之前,调用版本插件的适当目标来更新依赖项 A 的版本。因此,在构建 A 时,此更新不会是临时的,而是在 B 之前建成。【参考方案2】:

最好的方法是使用 Renovate,它是一个已经在 github 和 gitlab 中使用的 DevOps 工具。它也是开源的,您可以在自托管的 gitlab 中使用。它不仅适用于 maven,还适用于所有包管理器,如 npm、pip、dockerhub,您可以在以下链接中阅读更多信息:

https://resources.whitesourcesoftware.com/blog-whitesource/welcome-to-whitesource-renovate

【讨论】:

以上是关于在 POM 中更新依赖版本的主要内容,如果未能解决你的问题,请参考以下文章

更新 pom.xml 中子依赖项的版本

Maven 与 Jenkins - 更新依赖项的父 pom 版本

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

maven会在啥时候更新所有jar

如何仅使用“版本 Maven 插件”检查***(pom-listed)包的更新?

IDEA2.8版本pom的依赖怎么导入呀