Maven Wrapper 版本控制

虽然 IDEA 已经帮助配置好 Maven 相关开发环境可以直接运行, 但是在做多人开发的时候建议锁定公用的 Maven 版本

官方文档: https://maven.apache.org/tools/wrapper/index.html

Maven Wrapper 用于管理 Maven 版本的工具, 可以确保所有开发者使用相同的 Maven 版本进行开发来避免 Maven 版本不同导致的兼容性问题

锁定 Maven 版本基本只有好处没有坏处, 一般项目正式工程化推荐采用这种方式处理

引入 Maven Wrapper 只需要以下文件(加入代码版本库)

  • mvnw: Unix/Linux/macOS 脚本

  • mvnw.cmd: Windows 批处理脚本

  • .mvn/wrapper/maven-wrapper.properties: Maven Wrapper 配置文件

建议的 .gitignore 忽略文件排除掉以下文件

1
.mvn/wrapper/maven-wrapper.jar

这里从现有项目出发, 直接引入 Maven Wrapper 支持, 我这边采用命令行演示(假设目前已经在项目根目录)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 官方下载 mvnw 和 mvnw.cmd, 采用目前的 maven-wrapper 3.3.4 版本
# 注意: maven-wrapper 和 maven 两者版本号不是一致的, maven-wrapper 是作为工具链使用
# 最新官方版本可以参阅: https://maven.apache.org/download.cgi
# 不建议采用带 rc 的预览版本
# 这里最终从正式版本库下载: https://github.com/apache/maven-wrapper/tree/master/maven-wrapper-distribution/src/resources
curl -o mvnw https://raw.githubusercontent.com/apache/maven-wrapper/refs/heads/master/maven-wrapper-distribution/src/resources/mvnw
curl -o mvnw.cmd https://raw.githubusercontent.com/apache/maven-wrapper/refs/heads/master/maven-wrapper-distribution/src/resources/mvnw.cmd

# 如果在 linux 等环节系统中, 需要给 mvnw 文件执行权限
chmod +x mvnw

# 创建指定工具锁定版本目录, 添加版本配置文件
# window 不支持可以直接手动创建, maven-wrapper.properties/mvnw/mvnw.cmd 文件都需要提交版本库
mkdir .mvn/wrapper # 创建目录
touch .mvn/wrapper/maven-wrapper.properties # 创建文件

# 验证 mvnw 脚本是否正常
./mvnw -v # linux 命令
./mvnw.cmd -v # window 命令

maven-wrapper.properties 文件配置内容如下(目前使用官方正式 maven 3.9.16)

1
2
3
4
# 锁定的 Maven 发行版版本(当前官方正式版 3.9.16)
distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.16/apache-maven-3.9.16-bin.zip
# Maven Wrapper 自身的 jar 包下载地址(wrapper 工具版本 3.3.4)
wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.3.4/maven-wrapper-3.3.4.jar

至此就已经完成了, 但是如果你使用 JetBrains 相关 IDE 需要在多出一步让 IDEA 默认采用 Maven Wrapper 启动

  1. 打开 ‘文件(File)’ 菜单栏

  2. 选择 ‘配置(Settings)’

  3. 找到 ‘构建、执行、部署(Build,Execution,Deployment)’ 一栏

  4. 展开 ‘构建工具(Build Tools)’

  5. 选择 ‘Maven’

  6. 在右侧找到 ‘Maven 主路径(Maven Home Path)’ 下拉框

  7. 将默认的 ‘Bundled (Maven 3)’ 或本地安装路径切换为 ‘使用 Maven Wrapper(Use Maven Wrapper)’

  8. 确认下方自动识别的 ‘.mvn/wrapper/maven-wrapper.properties’ 路径正确

  9. 点击 ‘应用(Apply)’ → ‘确定(OK)’ 即可

这样默认 IDEA 打包编译也是沿用 Maven Wrapper 来处理