我们已经知道Maven预定义了许多的阶段(phase),每个插件都依附于这些阶段,并且在进入某个阶段的时候,调用运行这些相关插件的功能,我们先来看完整的Maven生命周期;
- 生命周期 阶段描述
- validate 验证项目是否正确,以及所有为了完整构建必要的信息是否可用
- generate-sources 成所有需要包含在编译过程中的源代码
- process-sources 处理源代码,比如过滤一些值
- generate-resources 生成所有需要包含在打包过程中的资源文件
- process-resources 复制并处理资源文件至目标目录,准备打包
- compile 编译项目的源代码
- process-classes 后处理编译生成的文件,例如对Java类进行字节码增加
- generate-test-sources 处理测试源代码,比如过滤一些值
- generate-test-resources 生成测试需要的资源文件
- process-test-resources 复制并处理测试资源文件至测试目标目录
- test-compile 编译测试源码至测试目标目录
- test 使用合适的单元测试框架进行测试,这些测试应该不需要代码被打包或发布
- prepare-package 在真正的打包之前,执行一些准备打包必要的操作。这通常会产生一个包的 展开的处理过的版本(将在Maven2.1+中实现)
- package 将编译好的代码打包成可分发的格式,如JAR,WAR或EAR
- pre-integration-test 执行一些在集成测试进行之前需要的动作,如建立集成测试需要的环境
- integration-test 如果有必要的话,处理包并发布至集成测试可以运行的环境
- post-integration-test 执行一些在集成测试运行之后需要的动作。如清理集成测试环境
- verify 执行所有的检查,验证包是有效的,符合质量规范
- install 安装包到本地仓库,以备本地的其他项目作为依赖使用
- deploy 复制最终的包至远程仓库,共享给其他开发人员和项目