安装
- http://maven.apache.org/configure.html
环境变量
- MAVEN_HOME:maven安装目录=maven.home
- MAVEN_USER_HOME:wrapper安装目录
- `MAVEN_USER_HOME
- wrapper/dists/{zipBaseName}/{url md5 base32}/`
zipFileName:压缩包
zipBaseName/:解压缩目录(无bin或者all等)
- maven.properties:传递给maven wrapper的maven参数
- 如果设置了这个,其实本地仓库就可以直接引用这个变量
${env.MAVEN_USER_HOME}/repository
- MAVEN_CONFIG:传递给maven wrapper的maven参数
- 且maven的 MAVEN_CMD_LINE_ARGS=MAVEN_CONFIG
- 这个就是maven的mvn脚本的命令行选项+命令,且是手动输入的那种
- 因为maven wrapper早先是用jar包执行maven的,因此用不到MAVEN_CMD_LINE_ARGS,只能通过其规定的MAVEN_CONFIG
- 等同于maven脚本的MAVEN_ARGS
- 如果想指定settings.xml、toolchains.xml等的路径,只能通过maven参数
- 最佳方式是通过环境变量
- 本地maven就设置MAVEN_ARGS
- wrapper就设置MAVEN_CONFIG
- 设置全局
-gs -gt,或者 用户 -s -t
MAVEN_ARGS=-gs %MAVEN_HOME%\conf\settings.xml -gt %MAVEN_HOME%\conf\toolchains.xml
- 不考虑迁移问题,其实直接用$HOME目录下的.m2是最好的
MAVEN_CONFIG=%MAVEN_ARGS%
.mvn/
- wrapper(其实很像gradle的wrapper)
- maven-wrapper.jar
- maven-wrapper.properites
- maven.properties
- maven.config
- jvm.config
- extensions.xml
- https://maven.apache.org/configure.html
- MAVEN_OPTS:Java
- MAVEN_ARGS:Maven
mvnw
- mvnw
- mvnw.cmd
- 执行maven wrapper将
- 使用最近的.mvn目录
- 设置系统属性为
- 原系统属性
- 传递给脚本的参数
- MAVEN_CONFIG
- maven.properties
- 将maven.home设置为解压的maven wrapper路径
3.9.6 版的wrapper
- mvnw:
- 解压目录变成了
MAVEN_USER_HOME/wrapper/dists/{zipBaseName}/{url md5 hex},压缩包被删除了
- 换成使用powershell5(不能用powershell7,会报错)
- 且是执行powershell来完成下载等操作,最后执行powershell的输出(输出的是下载好的wrapper的mvn路径)
- 由于是直接执行mvn脚本,因此不需要MAVEN_CONFIG,而是需要MAVEN_ARGS