一、什么是 Maven 的生命周期
Maven 的生命周期定义了各个构建环节的执行顺序,以便于自动化的执行构建命令。Maven 内置了三个生命周期:
- Default Lifecycle:处理项目的部署(核心)
- Clean Lifecycle:清理项目
- Site Lifecycle:创建项目的 web 站点
它们之间是相互独立的,也就是说可以分别调用。也可以同时运行这三套生命周期。
mvn clean install site
二、参考生命周期
2.1. Clean Lifecycle
Phase | Description |
---|
pre-clean | 执行项目实际清理前所需要的流程 |
clean | 删除上一次构建所生成的文件 |
post-clean | 执行清理完成之后所需的流程 |
2.2. Default Lifecycle
Phase | Description |
---|
validate | 验证项目正确,并提供所有必要的信息 |
initialize | 初始化构建状态,例如设置属性或创建目录 |
generate-sources | 生成源代码 |
process-sources | 处理源代码,例如过滤文件 |
generate-resources | 生成资源 |
process-resources | 将资源复制到指定目录中,准备进行打包 |
compile | 编译项目的源代码 |
process-classes | 编译之后的后处理 |
generate-test-sources | 生成测试代码 |
process-test-sources | 处理测试代码,例如过滤文件 |
process-test-resources | 将资源复制到指定目录中 |
test-compile | 编译测试代码 |
process-test-classes | 处理编译生成的测试文件 |
test | 使用合适的单元测试框架运行测试,这些测试不应要求对代码进行打包或部署 |
prepare-package | 在实际打包之前执行准备打包所需的操作 |
package | 取编译的代码,打包 |
pre-integration-test | 执行集成测试之前所需的操作 |
integration-test | 将软件包处理并部署到可以运行集成测试的环境中 |
post-integration-test | 执行集成测试后所需的操作,这可能包括清理环境 |
verify | 运行检查,以验证包装是否有效,并符合质量标准 |
install | 将软件包安装到本地存储库中,作为本地其他项目的依赖项使用 |
deploy | 在集成或发布环境中完成,将最终包复制到远程存储库,以便与其他开发人员和项目共享 |
2.3. Site Lifecycle
Phase | Description |
---|
pre-site | 执行项目生成之前所需的流程 |
site | 生成项目的站点文档 |
post-site | 执行完成站点生成和准备站点部署所需的流程 |
site-deploy | 将生成的站点文档部署到指定的 web 服务器 |
三、Maven 生命周期特点
- 定义了各个构建环节的执行顺序:顺序不能乱,必须按照既定的顺序来执行
- Maven 核心程序定义了抽象的生命周期,生命周期中各个阶段的具体任务是由对应插件完成的
- 为了更好的实现自动化构建,不论执行那个阶段都是从该生命周期的最初位置开始执行