Maven Wrapper 顾名思义是 Maven 的绿色包装包;安装 Maven 时,默认情况下,系统所有项目都会使用全局安装的这个 Maven 版本。但某些项目需要使用某个特定的 Maven 版本,这时,就可以使用 Maven Wrapper,它独立于全局的 Maven。
安装
安装 Maven Wrapper 前提是已经全局安装了一个 Maven,最简单的方式是在项目的根目录(即 pom.xml 所在的目录)下运行如下命令:
mvn wrapper:wrapper
如上命令安装的 maven wrapper 版本和全局的 Maven 版本一致,当然也可以指定特定的 maven 版本,如下安装命令:
mvn wrapper:wrapper -Dmaven=3.5.4
目录结构
项目里安装完 maven wrapper 之后,目录结构如下:
my-project
├── .mvn
│ └── wrapper
│ ├── maven-wrapper.jar
│ └── maven-wrapper.properties
├── mvnw
├── mvnw.cmd
├── ...
├── ...
├── ...
├── pom.xml
└── src
├── main
│ ├── java
│ └── resources
└── test
├── java
└── resources
你会发现多了如下几个目录及文件:
- .mvn:这是存放 maven wrapper 相关 jar 包及一些配置信息的文件,它们放在 wrapper 目录下;
- maven-wrapper.jar:其实是 maven 可执行的 jar 包;
- maven-wrapper.properties:maven 发布及版本等配置信息文件。
- mvnw:Linux 系统下的 mvn 脚本文件;
- mvnw.cmd:Windows 系统下的 mvn 脚本文件。
编译打包命令
由于是绿色包装包,执行命令需要在相对路径下运行。
在项目根目录,Linux 或 macOS 下运行时需要加上 ./
:
./mvnw clean compile
打包命令如下:
./mvnw clean package
其实使用全局 maven 命令时的 mvn
命令,在项目根目录下,替换成 ./mvnw
即可,其余命令选项及参数都相同。
结合 idea 使用
我们知道当使用 idea 开发 maven 项目时,右侧工具栏里会出现 maven 可视化工具操作界面,默认使用全局的 maven,为了和项目的 maven wrapper 一致,需要修改配置,具体在 idea 的偏好配置(Preferences 或 Settings),再进一步路径如下:
Build, Execution, Deployment -> Build Tools -> Maven
Maven 配置项的首页,将 Maven home path: 对应配置从 Bundled (Maven 3) 改为 Use Maven wrapper,即适配项目里的 maven wrapper 版本的工具栏(使用 .mvn/wrapper/maven-wrapper.properties 配置里的版本)。