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



相关推荐
zzqssliu11 小时前
SpringBoot框架搭建跨境独立站|Taocarts代购系统订单模块深度开发
java·spring boot·后端
dinl_vin11 小时前
FastAPI 系列 ·(四):数据库集成——SQLAlchemy 2.0 异步 ORM 与 Alembic 迁移
java·数据库·fastapi
编码者卢布11 小时前
【Azure Service Bus】Azure Service Bus Java SDK 中 Token 刷新异常的排查思路
java·python·azure
兰令水11 小时前
topcode【随机算法题】【2026.5.20打卡-java版本】
java·开发语言·算法
AI瓦力11 小时前
技术分享 | 彻底解决图片“躺平”问题:Java 后端强制校准图片方向
java
武子康11 小时前
Java-219 RocketMQ Spring Boot 集成指南:生产者与消费者实战
java·spring boot·分布式·kafka·消息队列·rocketmq·java-rocketmq
RainCityLucky11 小时前
Java Swing 自定义组件库分享(七)
java·笔记·后端
小兔崽子去哪了11 小时前
将自己项目发布到 maven 仓库
maven
小白|11 小时前
cmake:昇腾CANN构建系统完全指南
java·c++·算法
weixin_5129761711 小时前
Java 面试宝典 Beta5.0
java