Maven Wrapper

1.Maven包装器

Maven用作项目的依赖管理、测试用例运行、打包、构件管理于一身;
随着maven飞速发展,它的发行版本也越来越多,如何保证你使用的Maven的版本和下载你源码的人的Maven的版本一致呢,这时候mvnw就大显身手了。
mvnw全名是Maven Wrapper,它的原理是在maven-wrapper.properties文件中记录你要使用的Maven版本,当用户执行mvnw clean 命令时,发现当前用户的Maven版本和期望的版本不一致,那么就下载期望的版本,然后用期望的版本来执行mvn命令,比如刚才的mvn clean。

maven的包装器,通过mvnw命令替代mvn,简化mvn操作
.mvn文件夹存放着maven-wrapper.properties和maven-wrapper.properties.jar包以及名为MavenWrapperDownloader的java文件;
Maven Wrapper更简单确保Maven构建的用户拥有运行Maven构建所需的一切;
Maven对于用户来说非常稳定,但是随着Maven变化,用户将更容易拥有项目提供的完全封装的构建设置;
Maven Wrapper更容易做到,这是从Gradle借来的好主意;

2.使用方法

为项目添加mvnw支持很简单,有两种方式:
方法一:在pom.xml中添加Plugin声明:

<plugin><groupId>com.rimerosolutions.maven.plugins</groupId><artifactId>wrapper-maven-plugin</artifactId><version>0.0.4</version>
</plugin>

这样当我们执行mvn wrapper:wrapper 时,会帮我们生成mvnw.bat、mvnw、maven/maven-wrapper.jar、maven/maven-wrapper.properties这些文件;
然后我们就可以使用mvnw代替mvn命令执行所有的maven命令,比如mvnw clean package;

方法二:直接执行Goal(推荐使用这种)

#表示我们期望使用的Maven的版本为3.6.2
mvn -N io.takari:maven:wrapper -Dmaven=3.6.2

产生的内容和第一种方式是一样的,只是目录结构不一样:
maven-wrapper.jar和maven-wrapper.properties在".mvn/wrapper"目录下

使用的注意事项:
1、由于我们使用了新的Maven ,如果你的settings.xml没有放在当前用户下的.m2目录下,那么执行mvnw时不会去读取你原来的settings.xml文件
2、在mvnw.bat中有如下的一段脚本:if exist “%M2_HOME%\bin\mvn.cmd” goto init,意思是如果找到mvn.cmd就执行初始化操作,但是Maven早期版本不叫mvn.cmd,而是叫mvn.bat,所以会报"Error: M2_HOME is set to an invalid directory"错误,改成你本地的maven的匹配后缀就好了。

参考:
https://github.com/takari/maven-wrapper
https://www.cnblogs.com/EasonJim/p/7620085.html

Maven Wrapper相关推荐

  1. Spring Boot下无法加载主类 org.apache.maven.wrapper.MavenWrapperMain问题解决

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 引言: 在SpringBoot中需要使用mvnw来做相关操作,但是却有时候会报出达不到MavenWr ...

  2. Maven Wrapper简介

    简介 开发java项目少不了要用到maven或者gradle,对比gradle而言,可能maven要更加常用一些.要使用maven那就必要要安装maven,如果有些用户不想安装maven怎么办?或者说 ...

  3. 一文搞懂Maven Wrapper

    介绍 Maven Wrapper是受到Gradle Wrapper的启发而来的.它使Maven的一些配置 wrap 到项目里面,同时赋予了项目使用执行Maven版本的能力. 安装 方式一:在项目根目录 ...

  4. Maven Wrapper 之 SpringBoot 项目下的 mvnw.cmd

    Maven Wrapper 之 SpringBoot 项目下的 mvnw.cmd Maven Wrapper 文件 安装 Maven Wrapper 用 Maven Wrapper 打包 切换 Mav ...

  5. Maven Wrapper(mvnw)

    Maven Wrapper Maven Wrapper是一个Maven插件,用于封装提供Maven项目构建时所需要的一切.这么说可能比较抽象,来举个具体的例子吧. 一个Maven项目由多人协作维护,某 ...

  6. 换掉 Maven,我用它!!!

    点击上方蓝色"方志朋",选择"设为星标"回复"666"获取独家整理的学习资料! 来源:toutiao.com/i68249377791939 ...

  7. 终于放弃了Maven,我选择用Gradle!

    点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 作者 :乐百川 本文来源:toutiao.com/i682 ...

  8. 自从用完 Gradle 后,有点嫌弃 Maven 了!

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者 :乐百川 本文:toutiao.com/i682493777 ...

  9. 放弃Maven以后,我用了它。。。

    转自:乐百川 链接:toutiao.com/i6824937779193971207 相信使用Java的同学都用过Maven,这是一个非常经典好用的项目构建工具.但是如果你经常使用Maven,可能会发 ...

最新文章

  1. 可视化深入理解损失函数与梯度下降 | 技术头条
  2. springmvc:BeanNameViewResolver访问内部资源视图对象和访问外部资源视图对象
  3. [原创]SpotLight性能监控工具使用介绍
  4. c++ 虚继承与继承的差异
  5. Graph Coloring I
  6. Sentinel(二十四)之Sentinel Dashboard中修改规则同步到ZooKeeper
  7. 哪些行业形势好?大数据帮你预测今年就业“风口”
  8. [uva816]AbbottsRevenge Abbott的复仇(经典迷宫BFS)
  9. 关于React中状态保存的研究
  10. mac下virtualbox虚拟机centos联网问题
  11. 其实我的直觉告诉了我的未来
  12. SSE优化系列十:RGB和YUV格式图像互转SSE优化
  13. k3c最新官改非常稳定了_2020国庆过后玉米价格最新行情走势
  14. 基于Android的城市环境监测系统
  15. Python项目如何打包成whl文件
  16. 如何获取Linux的主机名和域名?
  17. 使用它给 ​xxl-job 添加任务,太爽了
  18. pandas.plotting.scatter_matrix 参数
  19. css 控制 段落 超出三行的部分显示...
  20. 158. 精读《Typescript 4》

热门文章

  1. 接口管理与测试平台-小幺鸡
  2. 基于Irrlicht引擎的3D游戏实例v0.7
  3. 周迅 演绎“不老传说” (图)
  4. npm和cnpm(windows)安装步骤
  5. HTML5 JQuery 实现搜索匹配功能
  6. MCI播放mp3文件error:初始化mci时发生问题
  7. golang开发GUI桌面应用fyne(二)
  8. 陕西西安整改油烟净化器,天珑助力
  9. 谈我的一个项目:心里FM心里电台
  10. 千与千寻 一个10岁小女孩的内心世界