您的位置:首页 > 其它

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

2014-04-24 14:46 162 查看

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的开发者多么智慧的头脑,以及多好的设计原则。

(待修改...)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: