maven-wrapper介绍
源码地址
环境依赖
JAVA_HOME 环境变量需要配置
maven-wrapper的应⽤
maven-wrapper⼲嘛⽤的?
先来看看传统maven的使⽤流程
传统使⽤maven需要先到官⽹上下载
maven打包本地jar包
配置环境变量把mvn可执⾏⽂件路径加⼊到环境变量,以便之后使⽤直接使⽤mvn命令。
另外项⽬l⽂件描述的依赖⽂件默认是下载在⽤户⽬录下的.m2⽂件下的repository⽬录下。
再次,如果需要更换maven的版本,需要重新下载maven并替换环境变量path中的maven路径。
现在有了maven-wrapper,会获得以下特性
执⾏mvnw⽐如mvnw clean ,如果本地没有匹配的maven版本,直接会去下载maven,放在⽤户⽬录下的.m2/wrapper中
并且项⽬的依赖的jar包会直接放在项⽬⽬录下的repository⽬录,这样可以很清晰看到当前项⽬的依赖⽂件。
如果需要更换maven的版本,只需要更改项⽬当前⽬录下.mvn/wrapper/maven-wrapper.properties的distributionUrl属性值,更换对应版本的maven下载地址。mvnw命令就会⾃动重新下载maven。
可以说带有mvnw⽂件的项⽬,除了额外需要配置 java环,只需要使⽤本项⽬的mvnw脚本就可以完成编译,打包,发布等⼀系列操作。
在项⽬初始化mvnw⽂件
如果你的项⽬没有mvnw⽂件,需要先下载maven,并把mvn可执⾏⽂件路径需加⼊的PATH中。然后执⾏以下命令,就会⾃动⽣成mvnw 相关⼀系列⽂件
mvn -N io.takari:maven:wrapper
idea对maven-wrapper的⽀持
idea提供了插件maven-wrapper-support
这个插件会监测项⽬下的.mvn/wrapper/maven-wrapper.properties中的distributionUrl属性值,且⾃动下载maven版本到⽤户⽬
录.m2/wrapper⽬录中,并且改变setting->build->build Tools ->maven-> maven home directory的值。
但是这个插件并不会改变setting->build->build Tools->maven->Local repository的值;点击Navigation Bar中的maven projectjs中的命令,执⾏的命令是原⽣mvn的命令,⽽不是项⽬中下的mvnw命令。
不⾜
项⽬⽬录下的.mvn/wrapper/maven-wrapper.properties的distributionUrl默认值是
/maven2/org/apache/maven/apache-maven/3.5.4/apache-maven-3.5.4-bin.zip
在执⾏mvnw命令下载有点慢,建议替换为
/dist/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin.zip
说说⾃⼰的看法
maven wrapper可以⾃动下载maven,但实际上我们常⽤的idea软件都⾃带了maven。
且如果⽤上了idea,⼀般习惯也是直接使⽤Navigation Bar执⾏maven命令⽐较⽅便。
maven wrapper根据配置⾃动切换maven版本。这个看起来很有⽤,但实际上maven版本也是很稳定。很少会出现需要切换maven 版本的情况
使⽤mvnw命令会在直接当前项⽬下⽣成repository,看起来每⼀个项⽬独⽴了repository,很模块化的样⼦。但是这样不仅浪费了磁盘空间,且实际上开发中并不关⼼repository,idea会⾃动有external librayies⽬录提供查看依赖的jar包。
当然,如果纯命令⾏⼯作,这会是个不错的选择。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。