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


当前回答

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

这允许您运行Maven项目,而无需在路径上安装和显示Maven。如果没有找到,它会下载正确的Maven版本(据我所知,默认是在您的用户主目录中)。

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


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

mvn -N io.takari:maven:wrapper

要使用不同版本的maven,您可以如下所示指定版本:

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

这两个命令都需要maven on PATH(将maven bin的路径添加到PATH on System Variables),如果你的项目中已经有mvnw,你可以使用./mvnw来代替命令中的mvn。

其他回答

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

这允许您运行Maven项目,而无需在路径上安装和显示Maven。如果没有找到,它会下载正确的Maven版本(据我所知,默认是在您的用户主目录中)。

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


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

mvn -N io.takari:maven:wrapper

要使用不同版本的maven,您可以如下所示指定版本:

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

这两个命令都需要maven on PATH(将maven bin的路径添加到PATH on System Variables),如果你的项目中已经有mvnw,你可以使用./mvnw来代替命令中的mvn。

在windows操作系统中,mvnw clean install用于maven的clean and install活动,mvnw Spring -boot:run用于从命令提示符运行Spring引导应用程序。

Eaxmple:

C:\SamplesSpringBoot\demo>mvnw clean install
C:\SamplesSpringBoot\demo>mvnw spring-boot:run

命令mvnw使用Maven,缺省情况下下载到~/。M2 /包装首次使用。

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版本,请调用以下命令(对于多模块项目,请记住—非递归):

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

或者只是修改。mvn/wrapper/maven-wrapper。手动属性。

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

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

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

它的例子:

./gradlew clean build
./gradlew bootRun

Maven的例子:

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

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

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

到目前为止,最好的选择是使用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 "$@"