1、什么是mvnw

mvnw是Maven Wrapper的缩写。我们安装Maven时,默认系统所有项目都会使用全局安装的这个Maven版本。但对于某些项目来说,它可能必须使用某个特定的Maven版本,这时就可以使用Maven Wrapper,它可以负责给这个特定的项目安装指定版本的Maven,而其他项目不受影响。

简单地说,Maven Wrapper就是给一个项目提供一个独立的,指定版本的Maven给它使用。

作用:

  • 自动寻找系统中的maven环境变量。如果没有找到它就会自动下载maven到一个默认的路径下,之后你就可以运行maven命令了。
  • 有时你会碰到一些项目的peoject和你本地的maven不兼容,它会帮你下载合适的maven版本,然后运行。
  • 使用Maven Wrapper,可以为一个项目指定特定的Maven版本:把项目的mvnw、mvnw.cmd和.mvn提交到版本库中,可以使所有开发人员使用统一的Maven版本。

总结:mvnw是一个maven wrapper script,它可以让你在没有安装maven或者maven版本不兼容的条件下运行maven的命令。

安装Maven Wrapper

安装Maven Wrapper最简单的方式是在项目的根目录(即pom.xml所在的目录)下运行安装命令:

mvn -N io.takari:maven:0.7.7:wrapper

它会自动使用最新版本的Maven。注意0.7.6是Maven Wrapper的版本。最新的Maven Wrapper版本可以去官方网站(https://github.com/takari/maven-wrapper)查看。

如果要指定使用的Maven版本,使用下面的安装命令指定版本,例如3.6.0:

mvn -N io.takari:maven:0.7.7:wrapper -Dmaven=3.6.0

安装后,查看项目结构,发现多了mvnw、mvnw.cmd和.mvn目录

mvnw的使用_不兼容

只需要把mvn命令改成mvnw就可以使用跟项目关联的Maven,例如:

mvnw clean package

在Linux或macOS下运行时需要加上./:

./mvnw clean package