前言
Maven Wrapper是受到Gradle Wrapper的启发而来的。一个Maven Wrapper就是Java工程根目录下的mvnw和mvnw.cmd文件以及.mvn目录。
image.png
nvmw和mvnw.cmd分别是MacOS\Linux和window上可执行的Shell的脚本或者批处理文件。保证这三个系统上都可以执行./mvnw
命令,.mvn
目录包含Maven Wrapper的Jar和properties文件。
其中maven-wrapper.properties文件中指定了Maven的下载路径和版本:
distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.2/apache-maven-3.5.2-bin.zip
系统不需要安装Maven,或者说mvn不需要出现在path里,直接在demo目录下运行mvnw(mac上运行./mvnw)。
mvnw第一次运行会检测$USER_HOME/.m2/wrapper/dists
目录下是否有maven-wrapper.properties中指定Maven版本,如果没有就自动下载。
就和普通的mvn 一样使用。例如以前运行的mvn clean ,现在运行mvnw clean就可以了。
Maven wrapper 好处有两点
- 可以指定一个Java工程必须用某个Maven版本。也可以统一开发同一个工程的团队成员使用的Maven,避免因为版本差异引起的不同错误
- 不需要在操作系统上安装Maven,进一步简化了开发配置环境。
网友评论