Maven Wrapper 之 SpringBoot 项目下的 mvnw.cmd

Posted 笑虾

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Maven Wrapper 之 SpringBoot 项目下的 mvnw.cmd相关的知识,希望对你有一定的参考价值。

Maven Wrapper 之 SpringBoot 项目下的 mvnw.cmd

Maven Wrapper 文件

每次创建项目后都会有这几个文件,很多教程都直接说删掉,也没介绍一下。

E:.
│  mvnw
│  mvnw.cmd 
├─.mvn
│  └─wrapper
│          maven-wrapper.jar
│          maven-wrapper.properties
│          MavenWrapperDownloader.java               
└─ 略...

其实这个mvnw可以理解为一个当前项目特供的 mavn
mvnw:linux 版脚本
mvnw.cmd : windows 版脚本

  1. 据说它默认会使用全局 maven 进行打包,如果找不到则会在当前项目下载一个符合要求的版本。给当前项目使用。
  2. 如果项目比较特殊,需要一个与全局 maven 版本不同的来打包。我们也可以它来指定用特定的maven版本进行打包。

安装 Maven Wrapper

如果当前项目的Maven Wrapper已经被我们删掉了,又或是其他原因,总之是没了。现在想挽回这段感情怎么办?安装之:

mvn wrapper:wrapper

Maven Wrapper的版本到这里看:https://maven.apache.org/wrapper/download.cgi

用 Maven Wrapper 打包

用法也和mavenmvn一样。只要把脚本换成mvnw即可。

mvnw clean package

切换 Maven Wrapper 所用的 maven 版本

  • 先查看一下当前的版本:
E:\\demo>mvnw -v
Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-11T00:41:47+08:00)
Maven home: C:\\Users\\jerry\\.m2\\wrapper\\dists\\apache-maven-3.3.9-bin\\6d5080f4\\apache-maven-3.3.9
Java version: 1.8.0_40, vendor: Oracle Corporation
Java home: D:\\JDK8\\jre
Default locale: zh_CN, platform encoding: GBK
OS name: "windows 8.1", version: "6.3", arch: "amd64", family: "dos"
  • 切换到 3.5.4
    mvn wrapper:wrapper -Dmaven=3.5.4
E:\\demo>mvn wrapper:wrapper -Dmaven=3.5.4
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building fastjson2-demo 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-wrapper-plugin:3.1.1:wrapper (default-cli) @ fastjson2-demo ---
[WARNING] Archive entry '.mvn/wrapper/' and existing file 'E:\\demo\\fastjson2-demo\\.mvn\\wrapper' names differ only by case. This may lead to an unexpected outcome on case-insensitive filesystems.
[INFO] Unpacked bin type wrapper distribution org.apache.maven.wrapper:maven-wrapper-distribution:zip:bin:3.1.1
[INFO] Configuring .mvn/wrapper/maven-wrapper.properties to use Maven 3.5.4 and download from https://repo.maven.apache.org/maven2
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.500 s
[INFO] Finished at: 2022-09-17T11:48:38+08:00
[INFO] Final Memory: 12M/243M
[INFO] ------------------------------------------------------------------------
  • 查看切换版本结果:
E:\\demo>mvnw -v
Apache Maven 3.5.4 (1edded0938998edf8bf061f1ceb3cfdeccf443fe; 2018-06-18T02:33:14+08:00)
Maven home: C:\\Users\\jerry\\.m2\\wrapper\\dists\\apache-maven-3.5.4-bin\\3b7e014\\apache-maven-3.5.4
Java version: 1.8.0_40, vendor: Oracle Corporation, runtime: D:\\JDK8\\jre
Default locale: zh_CN, platform encoding: GBK
OS name: "windows 8.1", version: "6.3", arch: "amd64", family: "windows"

辅助脚本

清理、打包然后运行

mvnw clean package -Dmaven.test.skip=true && java -jar target\\demo.jar

参考资料

Apache Maven Wrapper
Github Apache Maven Wrapper

以上是关于Maven Wrapper 之 SpringBoot 项目下的 mvnw.cmd的主要内容,如果未能解决你的问题,请参考以下文章

Maven Wrapper 之 SpringBoot 项目下的 mvnw.cmd

无法找到或加载主类 org.apache.maven.wrapper.MavenWrapperMain

mvnw是什么(Maven Wrapper/Maven保持构建工具版本一直的工具)

详解Maven项目利用java service wrapper将Java程序生成Windows服务

Maven nexus 安装nexus : wrapper | OpenSCManager failed - 拒绝访问。 (0x5)

SpringBoot系列之自定义枚举类的数据校验注解