当我创建Spring Boot应用程序时,我可以看到mvnw和mvnw。CMD文件在项目的根目录。这两个文件的目的是什么?
当前回答
命令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
其他回答
命令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的项目(或者根本不想安装Maven的用户),Maven Wrapper是一个极好的选择。我们可以只使用特定于项目的包装器脚本,而不是在操作系统中安装它的多个版本。
mvnw:它是一个可执行的Unix shell脚本,用于取代完全安装的Maven
mvnw。cmd:用于Windows环境
用例
包装器应该适用于不同的操作系统,例如:
Linux OSX 窗户 Solaris
之后,我们可以在Unix系统上运行我们的目标:
./mvnw clean install
Batch命令:
./mvnw.cmd clean install
如果包装器属性中没有指定的Maven,它将被下载并安装在$USER_HOME/文件夹中。系统的M2 /wrapper/dist。
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包装器。
这允许您运行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容器作为构建工具。像这样的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 "$@"
在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
推荐文章
- 用于桌面应用程序的Swing vs JavaFx
- 为什么这个Java程序会终止,尽管它显然不应该(也没有)终止?
- Maven project.build.directory
- 使用split("|")按管道符号拆分Java字符串
- 当内存不足导致抛出OutOfMemoryError时会发生什么?
- 检查ArrayList中是否存在值
- 我们能在Java中创建无符号字节吗
- 同步vs锁定
- 在ExecutorService的提交和执行之间进行选择
- 如何在javadoc中转义@字符?
- 如何在Java中创建唯一的ID ?
- 为什么Java类的编译与空行不同?
- Android Studio无法找到有效的Jvm(与MAC OS相关)
- Spring引导不提供静态内容
- 为什么一个组合器需要减少方法转换类型在java 8