前言
Apache Maven 是 Java 项目管理和构建自动化工具,它通过一个项目对象模型(POM, Project Object Model)来管理项目的构建、报告和文档。Maven 的核心优势在于其强大的依赖管理、标准化的项目结构以及丰富的插件生态系统。掌握 Maven 的常用命令是每个 Java 开发者必备的技能。
本篇博客将详细介绍 Maven 的核心命令,涵盖项目构建、依赖管理、生命周期操作、插件执行、项目信息查询等多个方面,并结合实际场景进行说明,帮助您高效地使用 Maven。
一、Maven 核心概念回顾
在深入命令之前,先快速回顾几个关键概念:
- POM (Project Object Model): 位于
pom.xml文件中,是 Maven 项目的配置中心,定义了项目信息、依赖、插件、构建配置等。 - 生命周期 (Lifecycle): Maven 定义了三套独立的生命周期:
default(构建项目)、clean(清理项目)、site(生成项目站点文档)。每个生命周期包含一系列按顺序执行的阶段(phase)。 - 阶段 (Phase): 生命周期中的一个步骤。例如,
default生命周期包含validate,compile,test,package,verify,install,deploy等阶段。 - 目标 (Goal): 插件(Plugin)的功能单元。一个阶段可以绑定一个或多个目标。
- 仓库 (Repository): 存储构件(Artifacts)的地方。分为本地仓库(Local Repository)、中央仓库(Central Repository)和远程仓库(Remote Repository,如公司私服 Nexus/Artifactory)。
二、Maven 常用命令详解
1. 项目构建与生命周期命令
这些命令是 Maven 最基础也是最常用的,直接对应 default 生命周期的阶段。
mvn compile
- 作用: 编译主代码(
src/main/java目录下的.java文件)。 - 执行阶段: 执行到
compile阶段为止,包含之前的所有阶段(如validate,generate-sources,process-sources,generate-resources,process-resources)。 - 输出: 编译后的
.class文件位于target/classes目录。 - 示例:
mvn compile
mvn test-compile
- 作用: 编译测试代码(
src/test/java目录下的.java文件)。 - 执行阶段: 执行到
test-compile阶段。 - 输出: 编译后的测试
.class文件位于target/test-classes目录。 - 说明: 此命令通常在运行测试前自动执行,但也可以单独运行。
- 示例:
mvn test-compile
mvn test
- 作用: 运行项目的单元测试(使用 JUnit, TestNG 等框架)。
- 执行阶段: 执行到
test阶段,包含之前的compile和test-compile。 - 输出: 测试结果报告通常在
target/surefire-reports(或target/failsafe-reports)目录下。 - 示例:
mvn test - 常用参数:
-Dtest=TestClass:运行指定的测试类。-Dt

最低0.47元/天 解锁文章
2707






