Maven生命周期
2020-04-15 本文已影响0人
世外大帝
介绍
对于构建项目的人来说,只需要学习一组命令就可以构建任何Maven项目,而 POM
将确保他们获得所需的结果。
每一个构建项目的命令都对应了maven底层的一个插件。
学习maven的生命周期可以帮助加深对maven的理解,以便更好的使用maven和解决使用过程中遇到的问题。
有三个内置的构建生命周期: default
, clean
和 site
。
-
default
生命周期处理项目部署 -
clean
生命周期处理项目清理 -
site
生命周期处理项目站点文档的创建
构建生命周期的不同阶段
实际上常用到的生命周期,基本都属于 Default 生命周期
阶段 | 描述 |
---|---|
validate |
确认项目是正确的,所有必要的信息都是可用的 |
compile |
编译 |
test |
测试 |
package |
打包 |
verify |
验证,对集成测试的结果进行任何检查,以确保满足质量标准 |
install |
将包安装到本地存储库中,作为本地其他项目中的依赖项使用 |
deploy |
发布 |
完整的生命周期
Clean 生命周期
Clean 生命周期在日常开发中,也会用到,但远不如 Default 生命周期频繁,例如迁移项目后,一般都需要清理一下,但从名字也能看出来,也仅限于清理。
阶段 | 描述 |
---|---|
pre-clean |
预清理:在实际项目清理之前执行所需的过程 |
clean |
清理:删除以前生成的所有文件 |
post-clean |
后清理:执行完成项目清理工作所需的流程 |
Default 生命周期
Default 生命周期在实际开发中是最常用的生命周期
阶段 | 描述 |
---|---|
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 |
对测试编译生成的文件进行后处理,参考process-classes
|
test |
测试 |
prepare-package |
预打包:在包装前进行任何必要的准备工作 |
package |
打包:将编译后的代码打包成可分发的格式,例如JAR包 |
pre-integration-test |
预集成测试:在执行集成测试之前执行所需的操作 |
integration-test |
集成测试:处理和部署到可以运行集成测试的环境中 |
post-integration-test |
后集成测试:执行集成测试后所需的操作 |
verify |
验证:运行任何检查来验证包是否有效并满足标准 |
install |
安装:将包安装到本地存储库中,作为本地其他项目中的依赖项使用 |
deploy |
打包:将最终的包复制到远程存储库,以便与其他开发人员和项目共享 |
Site 生命周期
实际上在日常开发中, Site 生命周期使用的并不多。
阶段 | 描述 |
---|---|
pre-site |
在实际项目站点生成之前执行所需的过程 |
site |
生成项目的站点文档 |
post-site |
执行完成站点生成和准备站点部署所需的流程 |
site-deploy |
将生成的站点文档部署到指定的web服务器 |
参考:
https://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html
https://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html#Lifecycle_Reference