7 Maven-生命周期和插件

1.Maven-简介 2.Maven-安装和配置 3.Maven-POM文件说明 4.Maven-坐标 5.Maven-依赖详解  6.Maven-仓库 7.Maven-生命周期和插件  8.Maven-聚合 9.Maven-继承和反应堆 10.Maven-使用NEXUS创建私服   11.Mavne-配置从NEXUS下载构件和为项目配置独立仓库   12.Maven-使用Hudson进行持续集成及系统配置  13.Maven-创建Hudson任务  14.Maven-Hudson监视任务、用户管理、工作目录


7 Maven-生命周期和插件

7.1.1 Maven生命周期
1)就是为了对所有的构件过程进行抽象和统一。这个生命周期包含了项目的清理、初始化、编译、测试、打包、集成测试、验 证、部署和站点生成等几乎所有构件步骤。
2)Maven的生命周期是抽象的,这意味着生命周期本身不做任何实际工作,实际的任务都交由插件来完成。
3)Maven的生命周期抽象了构建的各个步骤,定义了它们的次序,但没有提供具体实现。

7.1.2 Maven生命周期详解
     Maven拥有三套相互独立的生命周期,它们分别为clean、default和site。

     --clean的生命周期的目的是清理项目。
          pre-clean 执行一些清理前需要完成的工作。
          clean 清理上一次构建生成的文件
          post-clean 执行一些清理后需要完成的工作。

     --default生命周期的目的是构建项目。
          它定义了真正构建时所需要执行的所有步骤,它是所有生命周期中最核心的部分。
           validate,initialize,
           generate-sources,
           process-sources,
           generate-resources,
           process-resources,
           compile,
           process-classes,
           generate-test-sources,
           process-test-sources,
           generate-test-resources,
           process-test-resources,
           test-compile,
           process-test-classes,
           test,
           prepare-package,
           package,
           pre-integration-test,
           integration-test,
           post-integration-test,
           verify,
           install,
           deploy
      --site生命周期的目的是建立项目站点。
          pre-site 执行一些在生成项目站点之前需要完成的工作
          site 生成项目站点文档
          post-site 执行一些在生成项目站点之后需要完成的工作
          site-deploy 将生成的项目站点发布到服务器上。

      每个生命周期都包含一些阶段(phase),这些阶段是有顺序的,并且后面的阶段依赖于前面的阶段,用户和Maven最直接的交

互方式就是调用这些生命周期的阶段。


7.2 插件
7.2.1 插件目标

Maven的核心仅仅定义了抽象的生命周期,具体的任务时交由插件完成的,插件以独立的构件形势存在,因此,Maven核心的分发包只有不到3MB的大小,Maven会在需要的时候下载并使用插件。

7.2.2 插件绑定
Maven的生命周期与插件相互绑定,用以完成实际的构建任务。具体而言,是生命周期的阶段与插件的目标项目绑定,以完成某个具体的构建任务。

7.2.3 内置绑定
为了让用户几乎不用任务配置就能够构建Maven项目,Mavne在核心为一些主要的生命周期阶段绑定了很多插件的目标,当用户通过命令调用生命周期阶段的时候,对应的插件目标就会执行相应的任务。如下图:
7 Maven-生命周期和插件_第1张图片


7 Maven-生命周期和插件_第2张图片

相对于clean和site生命周期来说,default生命周期与插件目标绑定关系就显得负责一些。由于项目的打包类型会影响构建的具体过程,因此default生命周期阶段与插件目标绑定关系由打包类型所决定,打包类型是通过POM中的packaging元素定义的。如下图:

7 Maven-生命周期和插件_第3张图片

除了默认的打包类型jar外,常见的打包类型还有 war、pom、maven-piugin、ear等。他们的default生命周期与插件目标的绑定关系可参阅Maven官方文档。

7.2.4 自定义绑定

除了内置绑定以外,用户还能够自己选择将某个插件目标绑定到生命周期的某个阶段上,这样的自定义绑定方式能让Maven项目在构建过程中执行更多更丰富的任务。如下图:

7 Maven-生命周期和插件_第4张图片

上图中就绑定了一个mybatis相关的插件,它用于生成 model,dao,mapper等文件的。


备注:当插件目标被绑定到不同的生命周期阶段的时候,其执行顺序会由生命周期阶段的先后顺序决定。如果多个目标被绑定到同一个阶段,他们的执行顺序会按照插件声明的先后顺序执行。

你可能感兴趣的:(maven,maven,maven插件,maven生命周期,maven插件用法)