`
AdyZhang
  • 浏览: 14156 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Maven实战(四)生命周期

阅读更多

1. 三套生命周期 
    Maven拥有三套相互独立的生命周期,它们分别为clean,default和site。 
每个生命周期包含一些阶段,这些阶段是有顺序的,并且后面的阶段依赖于前面的阶段,用户和Maven最直接的交互方式就是调用这些生命周期阶段。 
以clean生命周期为例,它包含的阶段有pre-clean, clean 和 post clean。当用户调用pre-clean的时候,只有pre-clean得以执行,当用户调用clean的时候,pre-clean和clean阶段会得以顺序执行;当用户调用post-clean的时候,pre-clean,clean,post-clean会得以顺序执行。 

较之于生命周期阶段的前后依赖关系,三套生命周期本身是相互独立的,用户可以仅仅调用clean生命周期的某个阶段,或者仅仅调用default生命周期的某个阶段,而不会对其他生命周期产生任何影响。 

2. clean 生命周期

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

     1)pre-clean 执行一些清理前需要完成的工作。

     2)clean 清理上一次构建生成的文件。

     3)post-clean 执行一些清理后需要完成的工作。

 

3. default 生命周期

       default生命周期定义了真正构件时所需要执行的所有步骤,它是生命周期中最核心的部分,它包含的阶段如下:

       1) validate 验证项目是否正确和所有需要的相关资源是否可用

       2) initialize 初始化构建

       3) generate-sources

       4)   process-sources 处理源代码

       5) generate-resources 

       6)   process-resources 处理项目主资源文件。对src/main/resources目录的内容进行变量替换等工作后,复制到项目输出的主classpath目录中。

       7) compile 编译项目的主源代码

       8) process-classes

       9)   generate-test-sources

       10) process-test-sources 处理项目测试资源文件

       11)generate-test-resources

       12)  process-test-resources 处理测试的资源文件

       13)test-compile 编译项目的测试代码

       14)process-test-classes

       15)  test 使用单元测试框架运行测试,测试代码不会被打包或部署

       16)prepare-package 做好打包的准备

       17)package 接受编译好的代码,打包成可发布的格式

       18)  pre-integration-test

       19)  integration-test

       20)  post integration-test

       21)  verify

       22)  install 将包安装到Maven本地仓库,供本地其他Maven项目使用

       23)deploy 将最终的包复制到远程仓库,供其他开发人员和Maven项目使用

       

 

4. site 生命周期

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

      1)pre-site 执行一些在生成项目站点之前需要完成的工作

      2)site 生成项目站点文档

      3)post-site 执行一些在生成项目站点之后需要完成的工作

      4)site-deploy 将生成的项目站点发布到服务器上

分享到:
评论

相关推荐

    Maven3实战笔记04Maven的生命周期和插件

    ### Maven的生命周期和插件详解 #### Maven生命周期概述 Maven是一个项目管理和综合工具,它通过一系列预定义的任务和明确的构建生命周期来管理项目的构建、报告和文档。Maven的核心特性之一是其生命周期...

    maven 实战 所有源代码

    ** Maven实战:所有源代码详解 ** Maven是一款强大的项目管理和构建工具,广泛应用于Java开发领域。它通过一套约定优于配置的原则,简化了项目的构建、依赖管理以及文档生成等工作。本篇文章将深入探讨"Maven实战...

    Maven 实战(中文pdf)

    在《Maven实战》中,读者将学习如何设置Maven环境,理解Maven的生命周期和构建过程,包括clean、compile、test、package、install和deploy这些阶段。Maven的插件系统也是其强大之处,通过插件可以扩展Maven的功能,...

    Maven实战 Maven实战Maven实战

    ### Maven实战:Maven的安装、配置及使用入门 #### Maven概述 Maven是一款流行的Java项目管理和理解工具,由Sonatype公司支持,并广泛应用于Java项目的构建、依赖管理和文档生成等领域。Maven通过一种约定优于配置...

    Maven 实战源码

    《Maven实战源码》是一本专为Java开发者设计的指南,旨在帮助初学者和有经验的开发者深入理解和掌握Maven这一强大的项目管理和构建工具。Maven不仅简化了项目的构建过程,还通过依赖管理和插件机制,使得软件开发...

    《Maven实战》源代码

    《Maven实战》一书是Java开发者深入了解和掌握Maven构建工具的重要参考资料。该书的源代码涵盖了多个章节,包括ch-17、ch-3、ch-7、ch-8、ch-5、ch-10、ch-18和ch-12等,这些章节的内容广泛且深入,涉及了Maven的...

    《Maven实战》

    ### Maven实战:全面掌握Maven的核心技能 #### Maven简介与重要性 Apache Maven是一个项目管理和理解工具,主要用于Java项目的构建、依赖管理和项目信息管理。它通过一个项目对象模型(POM)来管理项目的构建、...

    maven 实战 in action 中文版 3.3

    ** Maven实战In Action中文版3.3:构建高效Java项目** Maven,作为Apache软件基金会的一个项目,是一款强大的项目管理工具,尤其在Java开发领域,它简化了构建、依赖管理和项目文档的流程。《Maven实战In Action...

    Maven《实战》许晓斌完整版包含源码

    **Maven实战——许晓斌完整版** Maven是一个强大的项目管理和构建工具,广泛应用于Java开发领域。由Apache Software Foundation维护,它简化了构建过程,通过一个统一的配置方式管理项目的构建、报告和依赖关系。...

    Maven实战.rar

    **Maven实战** Maven,一个强大的Java项目管理和综合工具,是开发人员不可或缺的利器。它简化了构建过程,管理依赖关系,并通过标准化的生命周期帮助团队高效协作。本资源“Maven实战.rar”旨在深入探讨Maven在实际...

    Maven应用实战源码 配套源码

    ** Maven应用实战源码分析 ** ...通过对源码的解读和实践,我们可以深入理解Maven的项目结构、依赖管理、构建生命周期、插件使用,以及仓库系统等核心概念,从而在实际开发中更加熟练地运用Maven,提高项目管理效率。

Global site tag (gtag.js) - Google Analytics