我们使用Maven时,基本上只会用到mvn这一个命令。有些童鞋可能听说过mvnw,这个是啥?

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

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

安装Maven Wrapper

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

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

它会自动使用最新版本的Maven。注意0.7.6是Maven Wrapper的版本。最新的Maven Wrapper版本可以去官方网站查看。

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

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

安装后,查看项目结构:

my-project
├── .mvn
│   └── wrapper
│       ├── MavenWrapperDownloader.java
│       ├── maven-wrapper.jar
│       └── maven-wrapper.properties
├── mvnw
├── mvnw.cmd
├── pom.xml
└── src├── main│   ├── java│   └── resources└── test├── java└── resources

发现多了mvnwmvnw.cmd.mvn目录,我们只需要把mvn命令改成mvnw就可以使用跟项目关联的Maven。例如:

mvnw clean package

在Linux或macOS下运行时需要加上./

./mvnw clean package

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

这使您可以运行Maven项目,而无需安装Maven并将其显​​示在路径上。如果找不到正确的Maven版本(就我所知,默认情况下在你的用户主目录中),它会下载它。

mvnw文件适用于Linux(bash),mvnw.cmd适用于Windows环境。

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

mvn -N io.takari:maven:wrapper

要使用不同版本的maven,可以按如下方式指定版本:

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

PATH如果你的项目中已经有了mvnw,你可以使用这两个命令,./mvnw而不是mvn在命令中。

Command mvnw使用默认情况下~/.m2/wrapper在第一次使用时下载的Maven 。

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版本,请调用以下内容(记住关于--non-recursive多模块项目):

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

或者只是.mvn/wrapper/maven-wrapper.properties手动修改。

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

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

练习

从下载练习:使用mvnw编译hello项目 (推荐使用IDE练习插件快速下载)

小结

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

.mvn目录mvnw和mvnw.cmd文件说明相关推荐

  1. IDEA的maven项目生成的文件详解 【.mvn、mvnw、mvnw.cmd、.gitignore、.iml、.idea、pom.xml】

    .gitignore:分布式版本控制系统git的配置文件,意思为忽略提交 在 .gitingore 文件中,遵循相应的语法,即在每一行指定一个忽略规则. 如:.log./target/..idea m ...

  2. IDEA构建maven项目生成的文件详解 (.mvn、mvnw、mvnw.cmd、.gitignore、.iml、.idea、pom.xml)

    1.   .gitignore:分布式版本控制系统git的配置文件,意思为忽略提交 在 .gitingore 文件中,遵循相应的语法,即在每一行指定一个忽略规则. 如:.log./target/..i ...

  3. 构建项目生成的文件(.mvn、mvnw、mvnw.cmd、.gitignore)

    .gitignore–分布式版本控制系统git的配置文件,意为忽略提交   在 .gitingore 文件中,遵循相应的语法,在每一行指定一个忽略规则.如:   .log   .temp   /ven ...

  4. vs dll必须和exe在同一个目录_Win10系统丢失 .dll 文件的三种解决方案教程

    有时候开机或打开一个软件时,系统会提示无法启动程序,这是怎么回事呢?这是因为计算机丢失某个或某些dll文件,由于系统本身不存在这些运行库文件,需要进行添加才能使用该软件. 方法一:下载丢失的.dll文 ...

  5. Windows批处理文件(.bat文件和.cmd文件)简单使用

    cmd文件和bat文件的区别,从文件描述中的区别是,cmd文件叫做:Windows命令脚本,bat文件叫:批处理文件,两者都可以使用任意一款文本编辑器进行创建.编辑和修改,只是在cmd中支持的命令要多 ...

  6. Python提取Word文件中的目录标题保存为Excel文件

    from docx import Document from openpyxl import Workbook from openpyxl.styles import Alignment, Borde ...

  7. TMS320F280049C 学习笔记9 CMD文件 程序从FLASH复制到RAM中运行

    文章目录 动机 CMD文件结构与语法 MEMORY和SECTIONS指令 MEMORY指令 SECTIONS指令 程序与数据段 已初始化段 未初始化段 其他指令 #pragma指令的使用 程序从FLA ...

  8. DSP学习(8)—— linker.cmd文件解析

    DSP学习(8)-- linker.cmd文件解析 文章目录 DSP学习(8)-- linker.cmd文件解析 前言 前言 写工程的时候遇到报内存不够的错误,出现在linker.cmd的内存分配se ...

  9. [CMD] DSP CMD文件详解

    目录 1. CMD文件是什么? 2. CMD文件的功能 3. CMD文件的使用方法 MEMORY伪指令--指示存储空间 SECTIONS伪指令--分配段到存储空间 4. 注意事项 1. CMD文件是什 ...

最新文章

  1. 创新的缩略图展示javascript类库 - Kort.js
  2. web app会遇到那些问题
  3. php打印负载函数、Linux awk打印负载
  4. win10下 Ubuntu 18.04 LTS 的安装及 rlt8821ce网卡驱动的安装
  5. hdfs读写流程_一文读懂HDFS分布式存储框架分析
  6. java浏览文件夹_一个用java实现简单的文件浏览器
  7. 他受他爸影响,他爸受数学家影响,最终造出了自动旋转的房子!
  8. python自动化_Python 实现Excel自动化办公上
  9. arm linux挂载ubi,挂载ubifs文件系统分区
  10. 【转】搞清楚脚本中这些函数的调用规律
  11. Axure RP 10 安装方法
  12. QTreeView 详解 并设置样式表
  13. 开源组织之FSF与OSI,开源协议之BSD、GPL、APACHE
  14. kdj指标详解曲线详解分析高位徘徊是什么KDJ指标详解曲线详解分析市场特征是什么
  15. java安装报错循环冗余检查_数据错误 循环冗余检查怎么解决
  16. 泛泛而谈的菜鸟学习记录(二)—— unity静态和动态批处理
  17. Fabric系列 - 多通道技术(Muti-channel)
  18. 中国篆刻艺术孙溟㠭作品《无有中无尽藏》
  19. 基本DOS命令---3.修改文件夹和文件属性
  20. <<多模态预训练—泛读>>2022:BLIP: Bootstrapping Language-Image Pre-training for Unified Vision-Language Unders

热门文章

  1. 软件测试面试python一般会问什么问题_软件测试面试一定会问到的面试问题
  2. 总裁在线带货,可口可乐京东新通路618直播间销售额破千万
  3. 投资22亿元!迈瑞医疗深圳龙华基地开工,打造集团全球供应链总部 | 美通社头条...
  4. 2020年最新flag大赏(紧急修订版)
  5. ubuntu虚拟机的配置方法
  6. 微信小程序开发之——flex布局
  7. 删除数据库 [MySQL][数据库]
  8. My Batis 环境搭建和实例
  9. 未忘初心,未得始终——记搜狗两余载
  10. h3c虚拟化服务器配置,H3C CAS 虚拟化平台安装部署