Maven Wrapper(mvnw)自动安装mvn
mvnw 脚本实际上是 Maven Wrappe 的启动脚本,它用于在项目中自动定位、下载并执行特定版本的 Maven,而无需依赖系统全局的 Maven。
一、mvnw 的核心执行逻辑
最后的关键执行语句是:
1 | exec "$JAVACMD" \ |
等价于:
1 | java $MAVEN_OPTS -classpath .mvn/wrapper/maven-wrapper.jar \ |
所以 mvnw 其实只是封装执行:
java + maven-wrapper.jar + 你的 mvn 参数
二、拆分后得到的可执行命令
你可以把构建命令拆成两种版本:
1. 直接等价于 mvnw 的完整命令
如果项目中已经有 .mvn/wrapper/maven-wrapper.jar:
1 | java -classpath .mvn/wrapper/maven-wrapper.jar \ |
这行命令 = ./mvnw clean package -DskipTests
💡 等价于
mvn clean package -DskipTests,但它自动下载对应 Maven 版本。
2. 使用系统 Maven
若系统中已有 mvn:
1 | mvn clean package -DskipTests |
或根据你的实际场景:
| 目标 | 命令 |
|---|---|
| 仅解析依赖 | mvn dependency:resolve |
| 只编译 | mvn compile |
| 打包 | mvn package |
| 安装到本地仓库 | mvn install |
| 跳过测试 | mvn clean package -DskipTests |
| 指定 profile | mvn clean package -Pprod |
| 跳过 Ant/Jenkins 插件 | mvn clean package -DskipAntRunForJenkins |
三、进阶整合
在 CI/CD(Jenkins、GitLab CI、Drone、Argo 等)中,一般会这样拆分:
1 | # step 1: backend build |