一、前言

      上一篇博客中,小编向大家介绍了Maven常用的一些命令,在这篇博客中,小编向大家介绍生命周期和插件 。

      在Maven的日常使用中,命令行的输入往往对应了生命周期,如mvn package就表示执行默认生命周期阶段的package。Maven的生命周期是抽象的,其实际行为都是由插件完成的,如package阶段的任务可能会由maven-jar-plugin完成。生命周期和插件两者协同工作,密不可分。

二、三套生命周期

      刚开始学习 maven的时候,都不知道有什么生命周期,以为从开始编译、测试、打包、部署整个都是一个完整的流程。其实,早在Maven出现之前,项目构建的生命周期就已经存在了,软件开发人员每天都对项目进行清理、编译、测试和部署。Maven的生命周期就是为了对所有的构建过程进行抽象和统一。Maven从大量的项目和构建工具中学习和反思,然后总结了一套高度完善、易拓展的生命周期。这个生命周期包括了清理、初始化、编译、测试、打包、集成测试、验证、部署和站点生成等几乎所有的构建步骤。

      Maven拥有三套相互独立的生命周期,他们分别是clean,default 和site。clean生命周期的目的是清理项目,default生命周期的目的是构建项目,而site生命周期的目的是建立项目站点。

【Maven】项目管理利器Maven(五)——生命周期和插件

2.1 clean生命周期

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

  1. pre-clean 执行一些清理前需要完成的工作
  2. clean 清理上一次构建成功的文件,清理target文件
  3. post-clean执行一些清理后需要完成的工作

2.2 default生命周期

      default生命周期定义了真正构建时所需要执行的步骤。是最核心的部分。

default 生命后勤 解释
validate 验证工程是否正确,所需的信息是否完整
initialize 初始化构建平台,例如:设置properties或创建目录
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 编译测试源代码(默认是test目录下)
process-test-class
test 执行单元测试
prepare-package
package 将工程文件打包为指定的格式,例如JAR,WAR等
pre-integration-test
integration-test 集成测试
post-integration-test
verify 检查package是否有效、符合标准
install 将包安装至本地仓库,以让其它项目依赖。
deploy 将最终的包复制到远程的仓库,以让其它开发人员与项目共享。

2.3 site生命周期

      site生命周期的目的是建立和发布项目站点,maven能够基于POM锁包含的信息,自动生成一个友好的站点,方便团队交流和发布项目信息。

  1. pre-site 执行一些在生成项目站点之前需要完成的工作。
  2. site生成项目站点文档
  3. post-site 执行一些在生成项目站点之后需要完成的工作。
  4. site-deploy 将生成的项目站点发布到服务器上。

三、插件

      maven管理生命周期过程都是基于插件完成的。定位到:%本地仓库%\org\apache\maven\plugins,可以看到一些下载好的插件:

【Maven】项目管理利器Maven(五)——生命周期和插件

四、小结

      通过对Maven的生命周期理解,可以更加深刻的理解每个阶段的程序运行。对程序的开发有很大的帮助。

相关文章:

  • 2021-09-05
  • 2021-08-17
  • 2021-05-30
  • 2021-09-13
  • 2021-08-29
猜你喜欢
  • 2021-11-12
  • 2021-07-12
  • 2021-12-30
  • 2022-12-23
  • 2023-01-30
相关资源
相似解决方案