Maven 声明周期

生命周期

​ maven的生命周期并不是一个整体,maven拥有三套相互独立的生命周期,分别为clean、default和site。clean是清理项目,default是构建项目,site是建立项目站点。

清理 clean

  • pre-clean:执行一些需要在clean之前完成的工作
  • clean:移除所有上一次构建生成的文件
  • post-clean:执行clean之后需要完成的工作

默认default

  • validate:检查配置,构建所需信息是否都能获取到
  • complie:编译源代码
  • test:单元测试
  • package:打包
  • verify:(检查)对集成测试的结果进行检查
  • install:安装打包的项目到本地仓库
  • deploy:(部署)拷贝工程包到远程仓库

细分的话,共有23个阶段。

validate : 检查工程配置是否正确,完成构建过程的所有必要信息是否能够获取到。
initialize : 初始化构建状态,例如设置属性。
generate-sources : 生成编译阶段需要包含的任何源码文件。
process-sources : 处理源代码,例如,过滤任何值(filter any value)。
generate-resources : 生成工程包中需要包含的资源文件。
process-resources : 拷贝和处理资源文件到目的目录中,为打包阶段做准备。
compile : 编译工程源码。
process-classes : 处理编译生成的文件,例如 Java Class 字节码的加强和优化。
generate-test-sources : 生成编译阶段需要包含的任何测试源代码。
process-test-sources : 处理测试源代码,例如,过滤任何值(filter any values)。
test-compile : 编译测试源代码到测试目的目录。
process-test-classes : 处理测试代码文件编译后生成的文件。
test : 使用适当的单元测试框架(例如JUnit)运行测试。
prepare-package : 在真正打包之前,为准备打包执行任何必要的操作。
package : 获取编译后的代码,并按照可发布的格式进行打包,例如 JAR、WAR 或者 EAR 文件。
pre-integration-test : 在集成测试执行之前,执行所需的操作。例如,设置所需的环境变量。
integration-test : 处理和部署必须的工程包到集成测试能够运行的环境中。
post-integration-test : 在集成测试被执行后执行必要的操作。例如,清理环境。
verify : 运行检查操作来验证工程包是有效的,并满足质量要求。
install : 安装工程包到本地仓库中,该仓库可以作为本地其他工程的依赖。
deploy : 拷贝最终的工程包到远程仓库中,以共享给其他开发人员和工程。

站点文档创建 site

  • pre-site
  • site:生成站点文档
  • post-site
  • site-deploy:将生产的站点文档部

命令行与生命周期

​ 三套生命周期是相互独立的,用户调用clean生命周期时,不会触发default生命周期的任何阶段,反之亦然。在一个生命周期中,运行某个阶段的时候,它之前的所有阶段都会被运行。执行多个生命周期时,每个生命周期间使用空格分开。举例如下:

  • mvn clean
    调用clean生命周期的clean阶段,实际执行pre-clean和clean阶段
  • mvn test
    调用default生命周期的test阶段,实际执行test以及之前所有阶段
  • mvn clean install
    调用clean生命周期的clean阶段和default的install阶段,实际执行pre-clean和clean,install以及之前所有阶段
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 什么是生命周期?在Maven出现之前,项目构建的生命周期就已经存在,软件开发人员每天都在对项目进行清理、编译、测试...
    yust5273阅读 365评论 0赞 0
  • Build Lifecycle 生命周期 Maven是基于build生命周期的核心概念,这意味着build和di...
    亼珏阅读 642评论 0赞 0
  • 一、maven的两个作用 项目自动化构建,通过命令行就可以完成整个项目构建过程,不需要我们手动地进行项目构建 管理...
    lifeline张阅读 977评论 0赞 1
  • 近期在学习java架构相关课程,这里做些笔记,后期可以回顾用。 maven是每个程序员开发必备的技能之一,但是很多...
    佛铭阅读 664评论 0赞 1
  • 何为生命周期 在 Maven 出现之前,项目构建的生命周期就已经存在。软件开发人员每天都在对项目进行清理、编译、测...
    杰哥长得帅阅读 393评论 0赞 2

友情链接更多精彩内容