MavenWrapper的使⽤
Maven Wrapper是apache maven借鉴了gradle wrapper之后增加了的功能,可以为每个具体的项⽬添加⼀个专⽤的、指定版本的maven供其使⽤。
takari官⽅说maven wrapper将会整合到apache maven 4.0⾥边,现在maven最新版本是3.8,等待好消息。
安装
安装⽅式,在maven项⽬的根⽬录下,mvn -N io.takari:maven:0.7.7:wrapper,就可以安装maven wrapper了。
使⽤⽅法跟maven⼀样,./mvnw clean install,windows下d clean install ,就可以安装本项⽬到本地maven库。
或者还有常⽤的 d clean package, 使⽤maven打包。
详细模式
将MVNW_VERBOSE环境变量设置为true开启详细模式
mvnw的⼯作原理
mvnw这个⼯具的主体是.mvn/wrapper/maven-wrapper.jar这个jar包和对应的shell脚本mvnw或者d,使⽤的时候要添加到使⽤的项⽬的根⽬录⾥,jar包⽤来在shell脚本的引导下、下载和调⽤maven ,如果发现这个jar包不可⽤,将从.mvn/wrapper/maven-
wrapper.properties⾥指定的wrapperUrl下载这个jar包,下载是通过curl, wget,没这俩的话就编
译./mvn/wrapper/MavenWrapperDownloader.java来⽣成class当作下载⼯具。wrapper下载的maven会默认保存在
~.m2\wrapper\dists\apache-maven-xxx⽬录下的。
指定使⽤maven版本
为当前项⽬安装wrapper的时候就可以指定,
mvn -N io.takari:maven:0.7.7:wrapper -Dmaven=3.5.4 #指定使⽤maven3.5.4
或者如果已经安装了maven wrapper之后,在maven-wrapper.properties⽂件⾥,修改
distributionUrl=repo./maven2/org/apache/maven/apache-maven/3.5.4/apache-maven-3.5.4-bin.zip
这样也可以。
要从需要基本⾝份验证的位置下载 Maven,有两个⽅式:
设置环境变量 MVNW_USERNAME 和 MVNW_PASSWORD
为wrapper指定本地的maven安装⽬录和本地maven库
1. 指定本地maven⽬录,我们打开mvnw脚本⽂件,可以看到如下注释,
Maven Start Up Batch script
Required ENV vars:
JAVA_HOME - location of a JDK home dir
Optional ENV vars
M2_HOME - location of maven2's installed home dir
MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
MAVEN_BATCH_PAUSE - set to 'on' to wait for a keystroke before ending
MAVEN_OPTS - parameters passed to the Java VM when running Maven
< to debug Maven itself, use
set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
MAVEN_SKIP_RC - flag to disable loading of mavenrc files
使⽤Maven Repository Manager
使⽤内部的Maven repository manager有两种⽅式:
1. 直接在maven-wrapper.properties⽂件中设置wrapperUrl以及wrapperUrl
2. 使⽤环境变量MVNW_REPOURL,⽐如MVNW_REPOURL=ample/central-repo-proxy
maven打包本地jar包
如果在通过takari-maven-plugin插件安装wrapper的时候设置了MVNW_REPOURL环境变量,那么就会写⼊到maven-
wrapper.properties⽂件了。
如果没设置,但在l配置了mirror URL,那么mirror也会⽣效。
Leave the default URL in the project pointing to Maven Central
and set the environment variable MVNW_REPOURL to your repo manager URL such as ample/central-repo-proxy.
If MVNW_REPOURL is set during the wrapper installation with the takari-maven-plugin,
the URL is used in the maven-wrapper.properties file.
If not set, but your mirror URL in l is configured, it will be used.
优化
通过maven wrapper下载的maven是在~.m2\wrapper\dists\apache-maven-3.6.3-bin\1iopthnavndlasol
9gbrbg6bf2\apache-maven-3.6.3
然后笔者修改了这个maven的l⾥边的本地maven库设置和aliMaven镜像之后,再执⾏mvnw clean package构建项⽬就会快⾮常多了,从半个多⼩时缩短到5分钟。
当然也可以使⽤设置环境变量的⽅法
export MVNW_VERBOSE=true
export MVNW_REPOURL=maven.aliyun/repository/public
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论