mvnw 即 maven wrapper 的缩写
mvn 即 maven 的缩写,mvnw 即 maven wrapper 的缩写
mvn 和 mvnw 的关系
从名字就可以知道,mvnw 是 mvn 的包装器,mvnw 内部包括一个 maven 版本;开发者一般会在本地安装某个版本的 maven。但有时候大家安装的 maven 版本并不一致,maven wrapper 相关内容是可以上传 git 的,这样大家都可已使用相同版本的 maven。
使用mvnw好处
- 本地可以不用安装maven
- 多人协同可以保证使用的 maven 版本是一致的,减少版本不一致带来的问题
maven 项目改为 maven Wrapper 项目
maven 项目变为 maven wrapper 项目本质上是将maven wrapper需要的执行文件下载当当前项目,方法有几种
-
其他同学已经上传 git 仓库后,直接 clone 本地即可,但有时候项目种不允许上传这种文件
git clone <项目地址>
-
使用
下载后目录.pngmvn wrapper:wrapper
命令
该命令是使用 maven 的 wrapper 插件 wrapper goal,该命令会下载与当前 maven 版本对应的 wrapper 相关文件。
mvn wrapper:wrapper -Dmaven=3.6.3
使用 3.6.3 的maven (推荐命令)
-
使用
下载后目录结构.pngmvn -N io.takari:maven:0.7.7:wrapper
命令
该命令是下载指定版本的 wrapper 文件,注意 wrapper 版本 和 maven版本是存在映射关系的哦,具体版本参考官网。
Site: https://maven.apache.org/wrapper/
Git: https://github.com/apache/maven-wrapper
mvn -N io.takari:maven:wrapper -D maven=3.6.3
下载maven 版本为 3.6.3 的(windows上 -D后需要空格)
使用 mvnw
与 maven 命令一样,命令如下
linux/mac 上
./mvnw clean
清除
windows 上
./mvnw.cmd clean
清除
实践
一般情况下,有的项目要求git种包含二进制文件,此时 只需要将 maven-wrapper.properties
上传即可。然后其他人在 clone 项目后执行mvn wrapper:wrapper
即可,此时会读取配置文件中的版本自动下载
参考
https://github.com/takari/takari-maven-plugin
https://mvnrepository.com/artifact/io.takari/maven-wrapper
https://maven.apache.org/wrapper/index.html
https://developer.aliyun.com/article/897110