【maven】versions-maven-plugin 插件

versions-maven-plugin 是 Apache Maven 的一个官方插件,用于帮助开发者管理项目中依赖(dependencies)、插件(plugins)以及自身项目的版本号。它提供了一系列目标(goals),可以方便地检查、更新和显示项目中的各种版本信息。

最新版本可查看 Maven Central - versions-maven-plugin


常用功能与目标(Goals)

Goal 说明
versions:display-dependency-updates 显示项目依赖中有哪些新版本可用
versions:display-plugin-updates 显示项目中使用的插件是否有新版本可用
versions:display-property-updates 显示通过 <properties> 定义的版本属性是否有更新(需配合 -DallowSnapshots=true 等参数)
versions:update-dependencies 自动将 <dependencies> 中的版本更新为最新版本(默认不包括快照版)
versions:update-properties 更新通过 <properties> 定义的版本属性值为最新版本
versions:set 修改当前项目的 <version>(例如从 1.0-SNAPSHOT 改为 1.0
versions:use-releases 将所有 SNAPSHOT 依赖替换为对应的 release 版本(如果存在)
versions:use-latest-releases 将依赖更新为最新的 release 版本
versions:use-latest-versions 将依赖更新为最新版本(包括快照)

示例用法

1. 检查依赖是否有更新
bash 复制代码
mvn versions:display-dependency-updates
2. 检查插件是否有更新
bash 复制代码
mvn versions:display-plugin-updates
3. 将项目版本从快照改为正式版(如 1.2.0-SNAPSHOT → 1.2.0)
bash 复制代码
mvn versions:set -DnewVersion=1.2.0

执行后会修改 pom.xml 中的 <version> 字段。建议配合 Git 使用,便于回滚。

4. 自动升级所有依赖到最新 release 版本
bash 复制代码
mvn versions:use-latest-releases
5. 提交更改前还原版本(可选)

如果你使用了 versions:set 修改了版本,但想撤销:

bash 复制代码
mvn versions:revert

或者提交更改:

bash 复制代码
mvn versions:commit

插件会在 .versionsBackup 目录中保留原始 POM 的备份。


配置示例(可选)

pom.xml 中显式声明插件(虽然通常无需声明即可使用):

XML 复制代码
<build>
  <plugins>
    <plugin>
      <groupId>org.codehaus.mojo</groupId>
      <artifactId>versions-maven-plugin</artifactId>
       <!-- 请使用最新稳定版 -->
      <version>2.16.2</version> 
    </plugin>
  </plugins>
</build>



相关推荐
码匠许师傅11 分钟前
【C++ 面试真题】聊聊 C++ 的虚函数和多态
java·c++·面试
chuan.bai38 分钟前
Java RAG 实战(第 8 篇):Spring Boot RAG 查询 API
java·spring boot·贪心算法
FlyWIHTSKY39 分钟前
idea中集成claude功能
java·ide·人工智能·intellij-idea·cloudera
Java成神之路-44 分钟前
Spring AI 统一结构化返回:ChatModel / ChatClient 两种实现方式
java·springaialibaba
Mr. zhihao1 小时前
深度解析:为什么Java序列化需要搭配ByteArrayOutputStream?IO装饰器模式的精妙设计
java·开发语言·装饰器模式
存在morning1 小时前
【Python 开发实践 一】Python vs Go vs Java 三门语言对比
java·python·golang
vx-程序开发1 小时前
springboot旅游推介平台---附源码24175
java·spring boot·python·spring cloud·eclipse·django·idea
艾莉丝努力练剑1 小时前
【QT:解决问题】Qt5Core.dll:无法定位程序输入点
java·开发语言·qt·学习·面试
小蒜学长2 小时前
“喵汪联盟”宠物领养系统的设计与实现(代码+数据库+LW)
java·spring boot·后端·宠物
程序员黑豆2 小时前
Java字符串常量池完全指南:原理、intern()方法与性能优化最佳实践
java·前端·ai编程