1. 概述
Maven Wrapper 是解决多版本 Maven 管理问题的利器,特别适合需要固定 Maven 版本的项目(或者不想安装 Maven 的用户)。与其在系统中安装多个 Maven 版本,不如直接使用项目专属的 wrapper 脚本。
这篇指南将演示如何为现有 Maven 项目配置 Maven Wrapper。
2. 配置 Maven Wrapper
有两种配置方式:插件自动化安装(最简单)和手动安装。
2.1 插件方式
以 Spring Boot 项目为例,使用 Maven Wrapper 插件 自动安装:
mvn -N wrapper:wrapper
指定 Maven 版本:
mvn -N wrapper:wrapper -Dmaven=3.5.2
⚠️ -N
表示 --non-recursive
,确保只作用于主项目而非子模块。
执行后项目将新增:
mvnw
:Unix 系统的可执行脚本(替代完整安装的 Maven)mvnw.cmd
:Windows 版本的脚本.mvn
目录:存放 Wrapper Java 库和配置文件
2.2 手动方式
从其他项目复制上述文件到当前项目根目录,然后修改 .mvn/wrapper/maven-wrapper.properties
指定版本:
distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.2/apache-maven-3.5.2-bin.zip
运行时将自动下载并使用 3.5.2 版本。
3. 使用场景
Wrapper 跨平台兼容:
- Linux
- OSX
- Windows
- Solaris
Unix 系统执行:
./mvnw clean install
Windows 执行:
mvnw.cmd clean install
✅ 关键机制:若系统中没有指定版本的 Maven,会自动下载到 $USER_HOME/.m2/wrapper/dists
目录。
运行 Spring Boot 项目示例:
./mvnw spring-boot:run
输出与完整安装的 Maven 完全一致:
❓ 是否应该把
mvnw
文件加入版本控制?
答案是:非必须但推荐。加入后能让克隆项目的人免装 Maven 直接构建。
4. 总结
本文介绍了 Maven Wrapper 的配置和使用方式。通过固定项目 Maven 版本,能有效避免"在我机器上能跑"的尴尬,是团队协作的实用工具。
完整示例代码见 GitHub 仓库。