maven-生命周期

Author Avatar
丁起男 11月 24,2020
  • 在其它设备中阅读本文章

maven-生命周期

maven将项目的生命周期抽象成了3套生命周期,每套生命周期又包含多个阶段,每套中具体包含哪些阶段是maven已经约定好的,但是每个节点具体需要做什么,是用户可以自己指定的。

3套生命周期是互相独立的,没有依赖关系,而每套生命周期中有多个阶段,每套中的多个阶段是有先后顺序的,并且后面的阶段依赖于前面的节点,用户可以时间使用mvn命令来调用这些阶段去完成项目生命周期中具体操作

命令:

mvn 生命周期阶段 [生命周期阶段...]

clean生命周期

clean生命周期的目的是清理项目,它包含三个阶段:

阶段描述
pre-clean执行一些需要在clean之前完成的工作
clean移除所有上一次构件生成的文件
post-clean执行一些需要在clean之后立刻完成的工作

用户可以通过mvn pre-clean来调用clean生命周期中的pre-clean阶段的操作

调用mvn post-clean会执行上面3个阶段所有的操作,每个生命周期中的后面的阶段会依赖于前面的阶段

default生命周期

这是maven主要的生命周期,主要用于构建应用,包括了23个阶段

阶段描述
validate校验:校验项目是否正确并且所有必要的信息可以完成项目的构建过程
initialize初始化:初始化构建状态,比如设置属性值
generate-sources生成源代码:生成包含在编译阶段中的任何源代码
process-sources处理源代码:处理源代码,比如,过滤任意值
generate-resources生成资源文件:生成将会包含在项目包中的资源文件
process-resources处理资源文件:复杂和处理资源到目标目录,为打包阶段做好准备
compile编译:编译项目的源代码
process-classes处理类文件:处理编译生成的文件,比如对javaclass文件做字节码优化
generate-test-sources生成测试代码:生成包含在编译阶段中的任何测试代码
process-test-sources处理测试代码:比如过滤任意值
generate-test-resources生成测试资源文件:为测试创建资源文件
process-test-resources处理测试资源文件:复制和处理测试资源到目标目录
test-compile编译测试源码:编译测试源代码到测试目标目录
process-test-classes处理测试类文件:处理测试源码编译生成的文件
test测试:使用适合的单元测试框架运行测试
prepare-package准备打包:在时间打包之前,执行任何的必要操作为打包做准备
package打包:将编译后的代码打包成可分发格式的文件,比如jar、war或者ear文件
pre-integration-test集成测试前置:在执行集成测试前进行必要的动作。比如搭建需要的环境
integration-test集成测试:处理和部署项目到可以运行集成测试环境中
post-integration-test集成测试后置:在执行集成测试后进行必要的动作。比如清理集成测试环境
verify验证:运行人员的检查来验证项目包有效且达到质量标准
install安装:安装项目包到本地仓库,这样项目包可以用作其它本地项目的依赖
deploy部署:将最终的项目包复制到远程仓库中于其他开发者和项目共享

site生命周期

site生命周期的目的是建立和发布项目站点,maven能够基于pom.xml所包含的信息,自动生成一个友好的站点,方便团队交流和发布项目信息。主要包括4个阶段

阶段描述
pre-site执行一些需要在生成站点文档之前完成的工作
site生成项目的站点文档
post-site执行一些需要在生成站点文档之后完成的工作,并且为部署做准备
site-deploy将生成的站点文档部署到特定的服务器上