基础命令
- mvn pre-clean
- 作用:在
clean操作之前做一些准备工作(极少直接使用,通常由插件自动触发) - 使用场景举例:自定义的插件需要在
clean之前备份日志文件
- 作用:在
- mvn clean
- 作用:清理项目的
target目录,通常在编译或打包前使用
- 作用:清理项目的
- mvn post-clean
- 作用:在
clean操作之后做一些收尾工作(极少直接使用,通常和pre-clean配对使用) - 使用场景举例:
clean后,清除一些其他生成的缓存文件
- 作用:在
- mvn validate
- 作用:验证项目是否有效(pom.xml文件的语法和内容是否正确、项目的目录结构符合maven的标准约定、检查声明的依赖项是否可用)
- mvn generate-sources
- 作用:自动化生成源代码
- 使用场景举例:比如使用Mapstruct框架编写bean转换的代码的实现类就会自动生成到
target/generated-sources文件夹下
- mvn process-sources
- 作用:处理生成的源代码或模板文件,特别是设计注解处理器时
- 使用场景举例:比如根据环境替换配置类中的占位符(如 ${spring.redis.host})
- mvn genereate-resources
- 作用:生成资源文件,如配置文件、XML文件等,类似于 generate-sources,但是针对的是资源文件的生成
- mvn process-resources
- 作用:处理生成的资源文件
- 使用场景举例:假如有一个
src/main/resources目录中的配置文件,在构建过程中,你可能需要对这些文件进行替换或处理(如替换其中的某些占位符)
- mvn generate-test-sources
- 作用:自动化生成测试源代码
- mvn process-test-sources
- 作用:处理生成的测试源代码或模板文件
- mvn generate-test-resources
- 作用:生成测试资源文件
- mvn process-test-resources
- 作用:处理生成的测试资源文件
- mvn process-classes
- 作用:处理编译后的
.class文件 - 使用场景举例:使用 AOP 框架时,在编译之后,对字节码进行增强,执行一些横切操作
- 作用:处理编译后的
- mvn process-test-classes
- 作用:处理编译后的测试的
.class文件
- 作用:处理编译后的测试的
- mvn compile
- 作用:编译项目中的源代码,将
src/main/java中的源代码编译为字节码,输出到target/classes
- 作用:编译项目中的源代码,将
- mvn test-compile
- 作用:编译项目中的源代码,将
src/test/java中的源代码编译为字节码,输出到target/test-classes
- 作用:编译项目中的源代码,将
- mvn test
- 作用:运行项目中的所有单元测试代码
- mvn prepare-package
- 作用:执行所有预备工作,通常是在构建产物之前处理所有必要的文件和资源
- 使用场景举例:在打包之前检查文件、生成报告等
- mvn package
- 作用:打包项目,将编译后的代码和资源文件打包为
.jar或.war文件(运行此命令时,maven会自动执行validate、compile、test阶段)
- 作用:打包项目,将编译后的代码和资源文件打包为
- mvn pre-integration-test
- 作用:在集成测试阶段之前执行的任务,常用于设置集成测试环境
- 使用场景举例:在集成测试前,需要做一些初始化工作,如数据库初始化等
- mvn integration-test
- 作用:执行集成测试,这个阶段会启动项目并测试多个模块的集成
- mvn post-integration-test
- 作用:在集成测试阶段之后执行的任务
- 使用场景举例:在集成测试后进行清理工作,关闭资源或报告生成
- mvn verify
- 作用:运行集成测试并验证项目的质量(清理项目 → 编译源代码 → 运行单元测试 → 打包 → 运行集成测试 → 对集成测试的结果进行检查,确保项目包有效且达到质量标准)
- mvn install
- 作用:将构建好的
JAR文件上传到远程server
- 作用:将构建好的
- mvn deploy
- 作用:将构建好的
JAR文件安装到本地 Maven 仓库,以便其他项目引用
- 作用:将构建好的
- mvn dependency:tree
- 作用:显示项目的依赖树,便于分析依赖关系
- mvn versions:display-dependency-updates
- 作用:检查项目依赖项是否有更新
命令行参数
- mvn -v :显示maven版本信息
- mvn -h :显示帮助信息
- mvn -o :运行offline模式
- mvn -U :强制更新SNAPSHOT类型的插件或依赖(否则maven一天只会更新一次SNAPSHOT依赖)
- mvn -Dxxx=xxx :指定java全局属性
- mvn -Pxxx,yyy :激活id为xxx和yyy的profile(多个用逗号隔开)