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



相关推荐
文丑颜不良啊9 小时前
LeetCode2161~2180题目解析
java·leetcode
文丑颜不良啊11 小时前
LeetCode2141~2160题目解析
java·leetcode
LabVIEW开发11 小时前
LabVIEW 连接板:28 个端子怎么排,优先级怎么定
java·算法·labview
天天被压力12 小时前
【A股分钟级高频数据完全手册 #07】北交所历史分钟K线接口:京市Pro版分时批量
java·人工智能·python
天天被压力12 小时前
【A股分钟级高频数据完全手册 #08】股票日、分时数据接口对比:普通分时与Pro版差异实测
java·人工智能·python
特立独行的猫A12 小时前
AI 时代,我为什么推荐用 cj-tauri 开发桌面应用
java·后端·python
金銀銅鐵12 小时前
从一个类名到一张类图:用反射自动生成 PlantUML
java·后端·uml
nice_lcj52012 小时前
Java 并发容器入门:ConcurrentHashMap、CopyOnWriteArrayList、阻塞队列
java·面试·并发编程·阻塞队列·concurrenthashmap·copyonwritearraylist
微小的鱼13 小时前
Linux的渲染与显示系统链路
android·java·linux
若亦_13 小时前
Java中关于this的三种用法
java·开发语言·intellij-idea