Maven-的常用指令
目录
Maven 的常用指令
一、核心构建指令
mvn clean
- 作用
:删除
target
目录(清理编译/打包生成的文件)。 - 场景 :确保从头开始构建,避免残留文件干扰。
- 作用
:删除
mvn compile
- 作用 :编译项目源代码。
- 场景 :快速检查代码是否能编译通过,无需打包。
mvn package
- 作用 :编译 + 运行测试 + 打包(生成 JAR/WAR 等)。
- 场景 :本地验证完整构建流程,生成可部署的包。
mvn install
- 作用 :编译 + 测试 + 打包,并将构建结果安装到本地仓库。
- 场景 :本地多模块项目中,将子模块的构建结果提供给其他模块使用。
mvn deploy
- 作用 :将构建结果发布到远程仓库(如 Nexus、Artifactory)。
- 场景 :将稳定版本的依赖共享给团队或持续集成环境。
二、依赖管理指令
mvn dependency:tree
- 作用 :打印项目依赖树,显示所有传递性依赖。
- 场景 :分析依赖冲突(如多个版本的库冲突),快速定位问题。
mvn dependency:analyze
- 作用 :检查未声明但被使用的依赖(或声明但未使用的依赖)。
- 场景
:优化
pom.xml
,清理冗余依赖。
mvn versions:display-dependency-updates
- 作用 :扫描依赖是否有新版本可用。
- 场景 :定期更新依赖版本,修复安全漏洞或使用新特性。
三、测试相关指令
mvn test
- 作用 :运行单元测试。
- 场景 :验证代码逻辑是否符合预期。
mvn test -Dtest=TestClassName
- 作用 :运行指定测试类。
- 场景 :调试单个测试用例,避免运行全部测试。
mvn test -DskipTests
- 作用 :跳过测试阶段。
- 场景 :快速构建(如临时修复时不需要执行测试)。
四、调试与优化指令
mvn -X
- 作用 :开启 Maven 的调试日志(显示详细执行过程)。
- 场景 :排查构建失败的具体原因。
mvn -U
- 作用 :强制更新远程仓库的快照(Snapshot)依赖。
- 场景 :确保使用最新的快照版本(如依赖频繁更新的开发中库)。
mvn --offline
- 作用 :离线模式(仅使用本地仓库的依赖)。
- 场景 :网络不可用时继续构建。
五、多模块项目指令
mvn -pl module1,module2
- 作用
:仅构建指定的子模块(如
module1
和module2
)。 - 场景 :大型项目中快速构建部分模块,节省时间。
- 作用
:仅构建指定的子模块(如
mvn -am -pl module1
- 作用 :构建指定模块及其依赖的其他模块。
- 场景
:确保依赖的子模块已构建(如
module1
依赖core
模块时自动构建core
)。
六、高级场景
mvn help:effective-pom
- 作用 :生成合并所有父 POM 后的最终有效 POM。
- 场景 :分析实际生效的配置(如插件、依赖版本)。
mvn archetype:generate
- 作用 :使用 Maven 原型(模板)创建新项目。
- 场景 :快速生成标准项目结构(如 Spring Boot、JavaFX 项目)。
mvn release:prepare
/mvn release:perform
- 作用 :自动化版本发布(更新版本号、打 Tag、发布到仓库)。
- 场景 :规范化的版本发布流程。
总结表格
指令 | 典型场景 |
---|---|
mvn clean install | 清理旧构建并安装到本地仓库 |
mvn dependency:tree | 分析依赖冲突或冗余依赖 |
mvn test -DskipTests | 跳过测试快速打包 |
mvn versions:display-dependency-updates | 检查依赖库是否有新版本可用 |
mvn -pl module1 -am | 构建指定模块及其依赖模块 |
mvn -X | 开启详细日志排查构建问题 |
通过灵活组合这些指令,可以高效完成构建、调试和发布任务。