5

Versions Maven 插件简介

 1 year ago
source link: https://www.diguage.com/post/intro-to-versions-maven-plugin/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

Versions Maven 插件简介

2023-04-21
Versions Maven 插件简介

制定组织内 Maven BOM 的一些规范 中,D瓜哥 介绍了一些组织内指定 Maven BOM 的一些规范。根据这些规范,D瓜哥 创建并维护了部门内部的 Maven BOM。今年,要求对部门内的陈旧依赖做一些升级工作。所以,在 关于升级 Spring 等依赖的一些经验 中介绍了一些升级开源依赖的经验;在上一篇文章 升级 Maven 插件 中介绍了升级 Maven 插件的一些注意事项。

D瓜哥一直坚持“机器可以干的事情,就应该交给机器干”。对于依赖管理,Maven Enforcer 插件就可以对依赖做必要的检查,所以,在 使用 Maven Enforcer 插件检查依赖 中,介绍了如何使用 Apache Maven Enforcer 来管理依赖。由于要维护部门内部的 Maven BOM,同时由于版本控的特质,所以,需要时长检查依赖升级情况。原来都是手动检查,需要一个一个去搜索各个依赖,不仅费时费力,而且还低效。最近,Maven 有一个插件可以胜任这个工作,它就是: Versions Maven Plugin

Versions Maven Plugin 支持两种配置方式:

  1. 外置配置文件 maven-version-rules.xml

  2. 内置在 POM 文件中,直接写在插件的 <configuration> 标签中。

第一种方案不方便迁移。还要额外管理一个配置文件。推荐使用第二种方式。另外,直接将这些配置放在 Maven BOM 中,使用继承的方式使用 Maven BOM,那么子项目就自动继承了这些配置。后续也只需要一个地方的配置即可。示例配置如下:

这里给大家提个醒,外置配置文件的配置语法与 POM 文件中的 <configuration> 中的配置语法不同,不可混用。D瓜哥混用了一下,就一直报错。后来,在 GitHub 上给项目提 Issue 才解决这个问题。

升级项目版本

现在的 Maven 项目,一般都会用多模块开发。升级项目版本时,就需要一个一个 POM 文件去改,费时费劲。这个操作,也可以让 Versions Maven Plugin 来完成。在项目的根目录执行如下命令

执行完后,该项目及子模块的版本都会给修改为 1.0.0;同时,每个 POM 文件都会生成一个对应的 pom.xml.versionsBackup,该文件是用于回滚的。

如果发现什么问题,想要回滚到上一个版本,则可以使用以下命令回滚到备份的 pom.xml

如果一些OK,则可以执行以下命令会删除备份文件,完成版本升级:

如果想省事,也可以增加参数 -DgenerateBackupPoms=false 不产生备份文件:

Versions Maven Plugin 还有升级插件等其他功能,感兴趣可以自行去探索。这里就不再赘述。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK