`
iqeq00
  • 浏览: 61683 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Maven 生命周期

阅读更多

Maven 生命周期

 

除了坐标、依赖以及仓库之外,Maven 另外两个核心概念是生命周期和插件。Maven 的生命周期是抽象的,其实际行为都由插件来完成。两者协同工作,密不可分。

 

1. Maven 生命周期是什么

 

    在 Maven 出现之前,项目构建的生命周期就已经存在,软件开发人员每天都对在项目进行清理、

    编译、测试及部署。虽然都是构建工作,却有着各式各样的构建方式。满足自身的需求即可,

    换个项目就需要重头再来。

 

    a) 定义

          Maven 的生命周期就是为了所有的构建过程进行抽象和统一。

 

    b) 内容

          Maven 从大量项目和构建工具中学习和反思,然后总结了一套高度完善的、易扩展的生命周期。

          几乎所有项目的构建,都能映射到这样一个生命周期上。

          i.   清理

          ii.  初始化

          iii. 编译

          iv. 测试

          v.  打包

          vi. 集成测试

          vii. 验证

          viii. 部署

          ix.  站点生成

 

    c) 声明周期是抽象的

          Maven 的生命周期是抽象的,生命周期本身不做任何实际的工作,实际的任务都交由插件来完成,

          类似设计模式中的模版方法模式。

 

   d) 插件机制

          Maven 的每个构建步骤都可以绑定一个或者多个插件行为,

          而且 Maven 为大多数构建步骤编写并绑定了默认插件。

 

   e) 标准化、结构化、灵活化

          Maven 的生命周期和插件机制,一方面保证了所有 Maven 项目有一致的构建标准,

          另一方面通过默认插件简单和稳定了实际项目的构建。

          并且也可以自行编写插件来自定义构建行为,最大灵活化。

 

2. 三套生命周期

 

    Maven 有三套相互独立的生命周期,每个生命周期包含一些阶段,这些阶段也是有顺序的,

    并且后面的阶段依赖于前面的阶段。但三套生命周期本身是相互独立的。

    可以调用任何一个生命周期的某个阶段,而不对其他生命周期产生任何影响。

 

    a) clean生命周期

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

           i.   pre-clean

                执行一些清理前需要完成的工作。

           ii.   clean

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

           iii.  post-clean

                执行一些清理后需要完成的工作。

 

    b) default生命周期

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

           包含以下阶段。基本上,根据名称我们就能猜出每个阶段的用途。

          (关于其它阶段的解释,请参考

                   http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html

            i.   validate

            ii.  initialize

            iii. generate-sources

            iv. process-sources

            v.  generate-resources

            vi. process-resources

                复制并处理资源文件,至目标目录,准备打包。

            vii. compile

                 编译项目的源代码。

            viii. process-classes

            ix.  generate-test-sources

            x.   process-test-sources

            xi.  generate-test-resources

            xii. process-test-resources

                 复制并处理资源文件,至目标测试目录。

            xiii. test-compile

                  编译测试源代码。

            xiv. process-test-classes

            xv.  test

                  使用合适的单元测试框架运行测试。这些测试代码不会被打包或部署。

            xvi. prepare-package

            xvii.package

                  接受编译好的代码,打包成可发布的格式,如 jar 。

            xviii.pre-integration-test

            xix.  integration-test

            xx.   post-integration-test

            xxi.  verify

            xxii. install

                  将包安装至本地仓库,以让其它项目依赖。

            xxiii.deploy

                  将最终的包复制到远程的仓库,以让其它开发人员与项目共享。

 

     c) site生命周期

           生成项目报告,站点,发布站点。

           i.   pre-site

               执行一些在生成项目站点之前需要完成的工作。

           ii.  site

               生成项目站点文档。

           iii. post-site

               执行一些在生成项目站点之后需要完成的工作。

           iv. site-deploy

                将生成的项目站点发布到服务器上。

 

     d) 总结

            i.   clean

                 mvn clean 中的clean就是上面的clean,在一个生命周期中,运行某个阶段的时候,

                 它之前的所有阶段都会被运行,也就是说,mvn clean 等同于 mvn pre-clean clean ,

                 如果我们运行 mvn post-clean ,那么 pre-clean,clean 都会被运行。

                 这是Maven很重要的一个规则,可以大大简化命令行的输入。

            ii.  site

                这里经常用到的是site阶段和site-deploy阶段,用以生成和发布Maven站点,

                这可是Maven相当强大的功能,Manager比较喜欢,文档及统计数据自动生成,很好看。

            iii. 切记

                记住,运行任何一个阶段的时候,它前面的所有阶段都会被运行,

                这也就是为什么我们运行mvn install 的时候,代码会被编译,测试,打包。

 

3
1
分享到:
评论
1 楼 gongjunhao 2014-03-07  

相关推荐

    Maven 生命周期.pdf

    Maven生命周期是一组预定义的阶段,这些阶段定义了构建过程的各个步骤,并且按照一定的顺序执行,从而简化和自动化项目的构建过程。 Maven生命周期主要分为三个独立的生命周期:clean生命周期、default生命周期和...

    关于 maven生命周期 最新 最全

    Maven生命周期 最新版 最全 最好用

    大话Maven生命周期

    Maven非常强大的重要原因是它有十分完善的生命周期模型 lifecycle 这个生命周期可以从两方面来理解 第一 顾名思义 运行Maven的每个步骤都由它来定义的 这种预定义的默认行为使得我们使用Maven变得简单 相比而言 Ant...

    Maven的生命周期和插件

    Maven生命周期是一系列阶段(phases)的集合,每个阶段包含了一系列的目标(goals)。当执行一个生命周期阶段时,它会执行该阶段内所有目标,按照它们的顺序。Maven生命周期主要有三个主要的部分: - **清理(Clean)...

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

    #### Maven生命周期概述 Maven是一个项目管理和综合工具,它通过一系列预定义的任务和明确的构建生命周期来管理项目的构建、报告和文档。Maven的核心特性之一是其生命周期(Lifecycle),它定义了一系列必须按顺序...

    Maven生命周期和及插件原理用法详解

    Maven生命周期和插件原理用法详解 Maven生命周期是Maven项目构建的核心机制,它定义了项目从编译到部署的整个过程。Maven生命周期可以分为三大阶段:clean周期、default周期和site周期。 1. Clean周期:负责清理...

    Maven的生命周期阶段.docx

    对于使用Eclipse的开发人员,M2Eclipse插件提供了与Maven生命周期的集成。用户可以直接在Eclipse中右键点击项目或`pom.xml`文件,选择`Run As > Maven Build`,预设或自定义Maven命令。例如,自定义`mvn clean ...

    Maven使用培训PPT(巨全)

    Maven生命周期定义了项目的构建、测试、打包、部署等阶段,分为clean、default和site三个生命周期。每个生命周期包含了一系列的阶段,每个阶段包含了若干个目标(Goal)。目标是实际执行的任务,由插件实现。 ### ...

    新建maven产生的maven库

    Maven库是Java开发中不可或缺的一部分,它是一个存储各种软件组件(主要是JAR...通过创建自定义Maven库,可以更好地管理和分发内部组件,而对Maven生命周期、插件以及仓库配置的深入理解,则有助于优化整个开发过程。

    maven配置命令及项目部署

    本文将详细介绍maven的配置命令、项目部署、pom.xml文件的结构和元素、maven生命周期和插件等知识点。 maven配置命令 maven提供了一系列的配置命令,用于项目的构建、测试、打包、部署等。以下是一些常用的maven...

    Maven by Example pdf英文原版

    - **Maven生命周期**:Maven定义了一组标准的生命周期阶段,如清理(clean)、编译(compile)、测试(test)、打包(package)等。用户可以绑定特定的插件目标到生命周期的各个阶段。 - **Maven坐标**:用于定位...

    apache-maven-3.6.3安装包

    Maven生命周期包括三个主要阶段:编译(compile)、测试(test)和打包(package)。每个阶段由一系列的阶段(goals)组成,例如`clean`预清理项目,`install`将项目安装到本地仓库。 5. **插件(Plugins)** ...

    maven分模块小demo

    4. Maven生命周期与构建阶段: Maven有三个主要的生命周期:clean、default和site。clean生命周期用于清理项目,default生命周期负责编译、测试、打包、集成测试、验证和部署,site生命周期则用于生成项目文档。在...

    第四课:Maven私服构建与插件开发1

    【描述】:本课程主要讲解Maven生命周期、自定义插件开发以及如何基于Nexus构建企业级的私有Maven仓库。 【标签】:“Maven”,“生命周期”,“插件开发”,“Nexus”,“私服” 【部分内容】: 1. Maven生命...

    Maven简单使用

    ** Maven简介 ** Maven是一个Java项目管理工具,它通过一套标准的构建生命周期和依赖管理...对于初学者,可以从安装、创建项目、理解和使用POM.xml,以及熟悉Maven生命周期和插件等方面入手,逐步掌握Maven的使用。

    maven3.0.3及eclipse-maven3-plugin插件

    4. **支持Maven生命周期和构建过程**: 开发者可以在 Eclipse 中直接触发 Maven 生命周期的不同阶段,如编译、测试和打包,这极大地提高了开发效率。 5. **聚合项目的支持**: 对于包含多个子模块的 Maven 多模块...

    Maven学习笔记

    Maven插件是Maven生命周期的核心部分,通过插件可以完成编译、测试、打包等构建任务。在Web项目中,通常会使用maven-war-plugin插件来打包Web应用,生成WAR文件。 Maven的安装和配置是使用Maven进行项目管理的第一...

Global site tag (gtag.js) - Google Analytics