mvnw和mvnw.cmd文件的目的是什么?

当我创build一个Spring Boot应用程序时,我可以在项目的根目录中看到mvnwmvnw.cmd文件。 这两个文件的目的是什么?

这些文件来自Maven包装 。 它的工作方式与Gradle包装类似。

这使您可以运行Maven项目,而无需安装Maven并将其显​​示在path上。 它下载正确的Maven版本,如果没有find(据我所知默认在您的用户主目录)。

mvnw文件用于Linux(bash), mvnw.cmd用于Windows环境。


要创build或更新所有必要的Maven Wrapper文件,请执行以下命令

 mvn -N io.takari:maven:wrapper 

要使用不同版本的maven,你可以指定版本如下

 mvn -N io.takari:maven:wrapper -Dmaven=3.3.3 

这两个命令都需要PATH maven,如果你的项目中已经有了mvnw,你可以在命令中使用./mvnw而不是mvw

命令mvnw使用默认情况下下载到~/.m2/wrapper在第一次使用的Maven。

每个项目在.mvn/wrapper/maven-wrapper.properties中都指定了Maven的URL:

 distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.3.9/apache-maven-3.3.9-bin.zip 

要更新或更改Maven版本,请调用以下内容(记住关于多模块项目的--non-recursive ):

 ./mvnw io.takari:maven:wrapper -Dmaven=3.3.9 

或者手动修改.mvn/wrapper/maven-wrapper.properties

要使用Maven从头开始生成包装器(您需要在PATH运行中使用它:

 mvn io.takari:maven:wrapper -Dmaven=3.3.9