SpringBoot--maven-wrapper(mvnw)--使用/详解

原文网址:SpringBoot--maven-wrapper(mvnw)--使用/详解_IT利刃出鞘的博客-CSDN博客

简介

本文介绍SpringBoot项目中maven-wrapper(也就是mvnw)的用法。

问题引出

        用https://start.spring.io/生成Spring Boot初始项目后,发现有几个奇怪的文件:

.
|-- .mvn
|   `-- wrapper
|       |-- maven-wrapper.jar
|       `-- maven-wrapper.properties
|-- mvnw
|-- mvnw.cmd

详见下图:

        在一些项目中并没有这几个文件,可见它们不是必须的,那么它们有什么作用呢?

maven-wrapper的作用

传统maven的使用流程

  1. 先到官网上下载
  2. 配置环境变量把mvn可执行文件路径加入到环境变量,以便之后使用直接使用mvn命令。
  3. 项目pom.xml文件描述的依赖文件默认下载在用户目录下的.m2文件下的repository目录下。
  4. 如果需要更换maven的版本,需要重新下载maven并替换环境变量path中的maven路径。

现在可以使用maven-wrapper,它的作用如下

  1. 执行mvnw,比如:mvnw clean,如果本地没有匹配的maven版本,直接会去下载maven,放在用户目录下的.m2/wrapper中
  2. 项目的依赖的jar包会直接放在项目目录下的repository目录,这样可以很清晰看到当前项目的依赖文件。
  3. 如果需要更换maven的版本,只需要更改项目当前目录下.mvn/wrapper/maven-wrapper.properties的distributionUrl属性值,更换对应版本的maven下载地址。mvnw命令就会自动重新下载maven。
  4. 带有mvnw文件的项目,除了额外需要配置 java环境外,只需要使用本项目的mvnw脚本就可以完成编译,打包,发布等一系列操作。

手动生成mvnw等

如果想要手动生成mvnw相关文件,可以执行命令:

mvn -N io.takari:maven:wrapper

它就能生成如下文件:

.
|-- .mvn
|   `-- wrapper
|       |-- maven-wrapper.jar
|       `-- maven-wrapper.properties
|-- mvnw
|-- mvnw.cmd

没必要使用maven-wrapper

  1. Idea软件自带了maven,不需要maven wrapper来自动下载
  2. Idea软件直接使用侧边栏执行maven命令比较方便。
  3. maven版本也是很稳定。很少会出现需要切换maven版本的情况
    1. 所以maven wrapper根据配置自动切换maven版本这个功能基本用不到。
  4. mvnw命令会在直接当前项目下生成repository,看起来每一个项目独立了repository,很模块化的样子。但是这样不仅浪费了磁盘空间,且实际上开发中并不关心repository,Idea会自动有external librayies目录提供查看依赖的jar包。

猜你喜欢

转载自blog.csdn.net/feiying0canglang/article/details/125410083