一起学Maven(Maven中的生命周期与插件机制)

Maven的生命周期

    就像人生一样,出生,成长,死亡,这个每个人乃至整个生命都拥有的特性。Maven的构造者就发现,整个项目的构建过程都拥有高度的相似性,清理、初 始化、编译、测试、打包、集成测试、验证、部署、站点发布等等,于是,Maven就在这些过程中抽象出三套执行机制,也就是独立的三种生命周期,分别是

  • Clean Lifecycle 项目的构建之前进行清理操作
  • Compile(Default) Lifecycle 主要进行项目构建的操作,编译测试打包部署等核心操作
  • Site Lifecycle 项目报告的生成,站点发布操作

完整生命周期(供参考)

1.Clean 
  pre-clean 执行一些清理前需要完成的工作。
  clean 清理上一次构建生成的文件
  post-clean 执行一些清理后需要完成的工作
2.Compile(Default) 
  validate 验证项目是正确的并且所有必需的信息都是可用的
  initialize 初始化构建状态
  generate-sources 产生所有的用来编译的源代码
  process-sources 处理源代码
  generate-resources 产生包含在package中的资源
  process-resources 复制和处理资源到目标目录,为打包做好准备
  compile 编译项目的主源代码
  process-classes 对编译器产生的文件进行后期处理
  generate-test-sources 产生所有用来编译的测试源代码
  process-test-sources 处理测试源代码
  generate-test-resources 创建测试所需要的资源
  process-test-resources 复制和处理资源到测试目标目录
  compile 编译测试源代码到目标目录
  process-test-classes 对编译测试源代码产生的文件进行后期处理
  test 使用适当的单元测试框架运行测试,这些测试代码不应该被打包或者部署
  prepare-package 执行所有需要执行的操作为打包做准备,这往往会产生一个还未打包的处理过的包版本
  package 使用设置的方式对编译过的文件进行打包
  pre-integration-test 执行一些集成测试执行前必须的操作
   integration-test 处理和部署包到集成测试环境中,进行测试
  post-integration-test 对集成测试进行后期处理
   verify 执行所有检查确保包是正确的和符合质量要求的
  install 将包安装至本地仓库,以让其它项目依赖
    deploy 将最终的包复制到远程的仓库,以让其它开发人员与项目共享
3.Site 
  pre-site 前期准备
  site 产生项目的站点文档
  post-site 后期处理
  site-deploy 部署站点到服务器

插件机制

    虽然Maven生命周期中有这么多个执行过程,但这些都是一个抽象的概念,这个概念性的东西意味着它并不做任何实质性的事情,也就是说:它就像接口,只定义规范,具体细节它不管。具体的 实现细节则交给了Maven 的各个丰富的插件,也就是说Maven的插件是要完全依赖于Maven的生命周期的,根据周期中的这些执行过程,才可以定义出相应功能的插件。

    因此Maven的生命周期和Maven插件是相辅相成的,只有周期,没有插件,Maven是没有法子执行相应的操作,只有插件,没有周期,插件将失去了意义,在这里,可以很好的赞叹Maven的开发者多么智慧的头脑,以及多好的设计原则。

    (待修改...)


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章