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



相关推荐
折哥的程序人生 · 物流技术专研4 小时前
Java面试85题图解版 · 特别篇:2026后端高频面试题复盘(算法底层逻辑+高并发架构设计全解析,附Java实战代码)
java·网络·数据库·算法·面试
一条泥憨鱼4 小时前
【Redis】数据类型和常用命令
java·数据库·redis·后端·缓存
云烟成雨TD4 小时前
Spring AI Alibaba 1.x 系列【78】沙箱(Sandbox)
java·人工智能·spring
程序员二叉4 小时前
【Java】 异常高频面试题精讲 | 易错点+对比总结
java·开发语言·面试
周航宇JoeZhou5 小时前
JB3-9-SpringAI(二)
java·ai·agent·多智能体·调度·智能体·观察
好家伙VCC5 小时前
Web Components主题热切换方案揭秘
java·前端
慕木沐5 小时前
Google ADK Java 1.0版本 核心机制与实战 Demo
java·开发语言·python
焦虑的说说6 小时前
秒杀系统设计方案
java
许彰午6 小时前
30_Java Stream流操作全解
java·windows·python
qq_2518364576 小时前
基于java Web网络订餐系统设计与实现 源码文档
java·开发语言·前端