java之Maven Wrapper (mvnw)

什么是mvnw

mvnw是Maven Wrapper的缩写。因为我们安装Maven时,默认情况下,系统所有项目都会使用全局安装的这个Maven版本。但是,对于某些项目来说,它可能必须使用某个特定的Maven版本,这个时候,就可以使用Maven Wrapper,它可以负责给这个特定的项目安装指定版本的Maven,而其他项目不受影响。

简单地说,Maven Wrapper就是给一个项目提供一个独立的,指定版本的Maven给它使用。

作用:
mvnw是一个maven wrapper script,它可以让你在没有安装maven或者maven版本不兼容的条件下运行maven的命令.

原理:

  1. 它会寻找maven在你电脑环境变量path中的路径。
  2. 如果没有找到这个路径它就会自动下载maven到一个默认的路径下,之后你就可以运行maven命令了。
  3. 有时你会碰到一些项目的peoject和你本地的maven不兼容,它会帮你下载合适的maven版本,然后运行。

总结:mvnw是一个maven wrapper script,它可以让你在没有安装maven或者maven版本不兼容的条件下运行maven的命令.

Maven Wrapper (mvnw) 的设计初衷就是让你不必预先安装Maven。

Maven Wrapper 特点

  1. 自包含
  • 不需要预先安装Maven
  • 项目中自带Maven运行环境
  • 可以直接使用 ./mvnw
  1. 工作原理
  • 首次运行会自动下载指定版本的Maven
  • 将Maven下载到项目的 .mvn 目录
  • 后续使用下载的Maven版本

推荐做法

  1. 项目优先使用 ./mvnw
  2. 保持 Wrapper 在版本控制中
  3. 团队统一构建环境

注意事项

  • 需要有网络连接(首次下载Maven)
  • 初次使用会稍慢(下载Maven)
  • 后续使用与本地Maven无异

macos下使用流程说明

  1. 第一次需要先安装Maven
# macOS (使用Homebrew)
brew install maven

# 验证Maven安装
mvn -v
  1. 使用Maven生成Wrapper
# 在项目根目录
mvn wrapper:wrapper
  1. 生成后即可使用
# 添加执行权限
chmod +x mvnw

# 使用Wrapper
./mvnw clean install
  1. 总结
  • 第一次:需要Maven
  • 之后:可以完全使用 ./mvnw

安装Maven Wrapper

安装Maven Wrapper最简单的方式是在项目的根目录(即pom.xml所在的目录)下运行安装命令:

mvn -N io.takari:maven:0.7.7:wrapper

它会自动使用最新版本的Maven。注意0.7.6是Maven Wrapper的版本。最新的Maven Wrapper版本可以去官方网站(https://github.com/takari/maven-wrapper)查看。

如果要指定使用的Maven版本,使用下面的安装命令指定版本,例如3.6.0:

mvn -N io.takari:maven:0.7.7:wrapper -Dmaven=3.6.0

安装后,查看项目结构,
发现多了mvnw、mvnw.cmd和.mvn目录,我们只需要把mvn命令改成mvnw就可以使用跟项目关联的Maven。

例如:

mvnw clean package

Maven Wrapper的另一个作用是把项目的mvnw、mvnw.cmd和.mvn提交到版本库中,可以使所有开发人员使用统一的Maven版本。

Maven Wrapper的另一个作用是把项目的mvnw、mvnw.cmd和.mvn提交到版本库中,可以使所有开发人员使用统一的Maven版本。

使用Maven Wrapper,可以为一个项目指定特定的Maven版本。

springboot2启动可以使用mvnw 命令

在Spring Boot工程中自带的有两个文件:mvnw与mvnw.cmd。这两个是什么文件呢?
Maven是一个常用的构建工具,但是Maven的版本和插件的配合并不是十分完美,有时为了保证有些插件的正常运行,我们不得不需要切换到一个稍微旧一些的版本。而这个切换工作需要用户重新安装一个Maven,那么就太麻烦了。

有一个工具Maven Wrapper(包装器),可以完成在Maven的某一版本下轻松切换到其它版本的目的。需要注意的是,Maven Wrapper并不是Maven官方提供的工具,而是第三方工具,若要使用,则需要安装。

Spring Boot工程中的mvnw即为安装好的Maven Wrapper工具。其中mvnw.cmd为Maven Wrapper的命令行运行窗口,而mvnw文件则为Maven Wrapper的配置文件。

在学习springboot2的时候,我们会发现,可以用 命令 mvnw spring-boot:run 来启动项目。

使用这个命令,依赖于项目中的 mvnw,mvnw.bat,mvnw文件夹。

### 如何在新建项目中配置和使用Maven Wrapper #### 创建新的Maven项目 为了开始一个新的Java项目并集成Maven Wrapper,首先需要初始化一个标准的Maven项目结构。这可以通过命令行工具完成。 ```bash mvn archetype:generate \ -DgroupId=com.example \ -archetype-quickstart \ -DinteractiveMode=false ``` 此命令会基于`maven-archetype-quickstart`模板创建一个新的Maven项目[^1]。 #### 添加Maven Wrapper至项目 一旦项目的初始设置已经准备好,在项目根目录下执行如下命令来安装默认版本的Wrapper: ```bash mvn -N io.takari:maven:wrapper ``` 如果希望指定特定版本,则可以在原有基础上增加参数以指明所需版本号: ```bash mvn -N io.takari:maven:wrapper -Dmaven=3.6.3 ``` 此时应当注意到当前工作空间内新增加了一个`.mvn/wrapper/`文件夹以及两个用于跨平台支持的脚本文件:`mvnw`(Unix/Linux/macOS)和 `mvnw.bat` (Windows)。这些资源共同构成了完整的Maven Wrapper环境[^2]。 #### 验证配置成功与否 通过检查 `.mvn/wrapper/maven-wrapper.properties` 文件的内容能够确认所使用的具体Wrapper及其对应的Maven版本信息。该属性文件记录了构建过程中将会调用的确切组件版本。 对于后续的操作而言,只需利用生成好的脚本来代替原始的`mvn`指令即可实现自动化管理依赖关系的目的。例如编译源码可采用下面的方式来进行: ```bash ./mvnw compile ``` 或是打包整个工程为JAR包形式发布出去: ```bash ./mvnw package ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

西京刀客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值