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

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

195705 次浏览

这些文件来自Maven包装。它的工作原理类似于Gradle包装

这允许您运行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的路径binPath),如果你的项目中已经有mvnw,你可以在命令中使用./mvnw而不是mvn

命令mvnw使用Maven,在第一次使用时默认下载到~/.m2/wrapper

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

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容器作为构建工具。像这样的mvn.sh脚本就足够了:

#!/bin/bash
docker run --rm -ti \
-v $(pwd):/opt/app \
-w /opt/app \
-e TERM=xterm \
-v $HOME/.m2:/root/.m2 \
maven mvn "$@"

Maven包装对于需要特定版本Maven的项目(或者根本不想安装Maven的用户)是一个很好的选择。我们可以只使用特定于项目的包装器脚本,而不是在操作系统中安装它的多个版本。

mvnw:是一个可执行的Unix shell脚本,用于取代完全安装的Maven

mvnw.cmd:用于Windows环境


用例

包装器应该适用于不同的操作系统,例如:

  • Linux
  • OSX
  • 窗户
  • Solaris

之后,我们可以在Unix系统上运行我们的目标:

./mvnw clean install

Batch命令:

./mvnw.cmd clean install

如果包装器属性中没有指定的Maven,它将被下载并安装在系统的$USER_HOME/.m2/wrapper/dists文件夹中。


Maven Wrapper插件

Maven Wrapper插件使自动安装在一个简单的Spring Boot项目。

首先,我们需要进入项目的主文件夹并运行以下命令:

mvn -N io.takari:maven:wrapper

我们还可以指定Maven的版本:

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

选项-N表示-非递归,这样包装器将只应用于当前目录的主项目,而不是任何子模块。


来源1(进一步阅读): https://www.baeldung.com/maven-wrapper

简短的回答:在终端中运行Maven和Gradle,无需手动安装。

它的例子:

./gradlew clean build
./gradlew bootRun

Maven的例子:

./mvnw clean install
./mvnw spring-boot:run

建议使用Gradle Wrapper(简而言之就是“Wrapper”)的帮助来执行任何Gradle构建。Wrapper是一个脚本,它调用一个已声明的Gradle版本,如果需要的话,可以预先下载它。因此,开发人员可以快速启动并运行Gradle项目,而不必遵循手动安装过程节省您公司的时间和金钱"

Gradle还会添加一些与Maven文件GradlewGradle.bat相对应的特定文件

Initializer

windows操作系统

请使用以下命令:

mvnw clean install  ( for the maven clean and install activity )
mvnw spring-boot:run  ( To Run the Spring boot application from command prompt )

例如:

C:\SamplesSpringBoot\demo>mvnw clean install(用于maven的clean和install活动) C: \ SamplesSpringBoot \ demo> mvnw spring-boot:运行< /强> < / p >