mvnw和mvnw.cmd文件的作用是什么?
mvnw和mvnw.cmd文件的作用是什么?
当我创建一个Spring Boot应用程序时,我可以在项目的根目录中看到mvnw
和mvnw.cmd
这两个文件。这两个文件的目的是什么?
admin 更改状态以发布 2023年5月24日
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
这些文件来自于Maven wrapper。它的工作方式类似于Gradle wrapper。
这使得你可以在没有安装 Maven 或 Maven 不在路径上的情况下运行 Maven 项目。如果未找到正确的 Maven 版本,它会下载它(据我所知,默认为用户主目录)。
mvnw
文件适用于 Linux(Bash),而 mvnw.cmd
适用于 Windows 环境。
要创建或更新所有必需的 Maven Wrapper 文件,请执行以下命令:
mvn -N io.takari:maven:wrapper
要使用不同的 Maven 版本,可按以下方式指定版本:
mvn -N io.takari:maven:wrapper -Dmaven=3.3.3
这两个命令都需要将 Maven 加入到 PATH
中(将 Maven 的 bin
路径添加到系统变量的 Path
中)。如果你已经在项目中有了 mvnw
,则可以在命令中使用 ./mvnw
来代替 mvn
。