maven生命周期
maven的命令无论是执行哪个阶段,都会从最初的位置开始执行
maven有三套生命周期
一、clean生命周期
在构建之前进行一些清理工作,将以前编译得到的旧文件class字节码文件删除
- pre-clean clean之前完成的工作
- clean 移除上一次构建生成的文件
- post-clean 执行一些需要在clean之后立刻完成的工作
二、Default 生命周期
构建的核心,编译、测试、打包、安装、部署 每个都是一个目标goal 在插件中指定目标
validate: 验证工程配置是否正确
generate-sources 生成编译阶段需要的任何源码文件
- process-sources 处理源代码
- generate-resources 生成工程包中需要包含的资源文件
- process-resources 复制并处理资源文件,至目标目录,准备打包
- complie 编译,将java源程序编译成class字节码文件
- process-classes 处理编译生成的文件,可以对class字节码进行加强和优化
- generate-test-sources 生成编译阶段需要包含的任何测试源代码
- process-test-sources 处理测试源代码
- generate-test-resources 生成编译阶段需要包含的测试资源
- process-test-resources 复制并处理资源文件,至目标测试目录
- test-complie 编译测试代码
- process-test-classes 处理测试代码文件编译后生成的文件
- test 测试,执行单测
- prepare-package 在真正打包前执行任何必要的操作
- package 打包
- pre-integration-test 在集成测试执行之前,执行所需的操作
- integration-test 可以将包处理发布到一个能够进行集成测试的环境
- post-integration-test 集成测试被执行后执行的操作,如清理环境
- verify 验证包是否有效
- install 安装至本地仓库
- deploy 发布到远程仓库
三、Site生命周期
生成项目报告、站点、发布站点
pre-site:执行一些需要在生成站点文档之前的工作
site:生成项目的站点文档
- post-site:执行一些需要在生成站点文档之后完成的工作,并且为部署做准备
- site-deploy:将生成的站点文档部署到服务器上
目标
目标表示一个特定的、对构建和管理工程有帮助的任务,可能绑定了0个或多个构建阶段,没有绑定任何构建阶段的目标可以在构建生命周期之外被直接调用执行
执行的顺序依赖于目标和构建阶段被调用的顺序
1 | clean阶段先执行,然后dependency:copy-dependencies 目标进行执行,最后package阶段执行 |