Maven有三套相互独立的生命周期
- CleanLifecycle 在进行真正的构建之前进行一些清理工作
- DefaultLifecycle 构建的核心部分,编译,测试,打包,部署等等
- SiteLifecycle 生成项目报告,站点,发布站点
CleanLifecycle
执行阶段 | 描述说明 |
---|---|
pre-clean | 在实际的项目清理之前执行所需的过程 |
clean | 删除前一个构建生成的所有文件 |
post-clean | 执行完成项目清理所需的过程 |
DefaultLifecycle
执行阶段 | 描述说明 |
---|---|
validate | 验证项目是正确的,所有必要的信息都是可用的。 |
initialize | 初始化构建状态,例如设置属性或创建目录。 |
generate-sources | 生成包含在编译中的任何源代码。 |
process-sources | 处理源代码,例如过滤任何值。 |
generate-resources | 生成包含在包中的资源。 |
process-resources | 将资源复制并处理到目标目录中,准备打包。 |
compile | 编译项目的源代码。 |
process-classes | 从编译后生成生成的文件,例如在Java类上执行字节码增强。 |
generate-test-sources | 生成包含在编译中的任何测试源代码。 |
process-test-sources | 处理测试源代码,例如过滤任何值。 |
generate-test-resources | 为测试创建资源。 |
process-test-resources | 将资源复制并处理到测试目标目录中。 |
test-compile | 将测试源代码编译到测试目标目录 |
process-test-classes | 从测试编译后post-process生成文件,例如在Java类上执行字节码增强。对于Maven 2.0.5和以上。 |
test | 使用合适的单元测试框架运行测试。这些测试不应该要求打包或部署代码。 |
prepare-package | 在实际包装前执行必要的准备工作。这通常会导致包的一个未打包的、经过处理的版本。(Maven 2.1及以上) |
package | 使用已编译的代码,并将其打包成可部署格式,例如JAR。 |
pre-integration-test | 执行集成测试之前需要执行的操作。这可能涉及到设置所需的环境等问题。 |
integration-test | 在需要集成测试的环境中,处理并部署包。 |
post-integration-test | 执行集成测试后所需要的操作。这可能包括清理环境。 |
verify | 运行任何检查以验证包是否有效,并满足质量标准。 |
install | 将该包安装到本地存储库中,作为本地其他项目的依赖项。 |
deploy | 在集成或发布环境中完成,将最终包复制到远程存储库中,以便与其他开发人员和项目共享。 |
SiteLifecycle
执行阶段 | 描述说明 |
---|---|
pre-site | 在实际的项目站点生成之前执行过程 |
site | 生成项目的站点文档 |
post-site | 执行确定站点生成的过程,并为站点部署做好准备 |
site-deploy | 将生成的站点文档部署到指定的web服务器 |
命令举例
maven clean package
注意这三套的生命周期互不干扰,这条命令先执行clean生命周期的pre-clean,clean阶段,再执行default生命周期的validate到package阶段