在 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 中更新依赖版本的主要内容,如果未能解决你的问题,请参考以下文章
Maven 与 Jenkins - 更新依赖项的父 pom 版本