Maven学习 04 - 构建生命周期

版权声明:原创不易,欢迎分享和转载,同时请注明出处,谢谢! https://blog.csdn.net/lijing742180/article/details/84618896

构建生命周期是指为一个工程进行项目构建和发布的过程,它是 Maven 中的一个核心概念。

1、标准生命周期

Maven中内置了三个标准的构建生命周期:

  • default(或build):处理工程的部署
  • clean:处理工程的清理
  • site:负责创建工程的站点文档。

这三个构建生命周期都是由一系列不同的构建阶段组成,每一个构建阶段代表了生命周期的一个阶段。

2、default 生命周期的阶段

一个典型的 Maven default(build)生命周期主要由以下几个阶段的序列组成(此处并完全列出):
在这里插入图片描述

阶段 描述
验证 validate 验证项目是否正确且所有必须信息是可用的
编译 compile 源代码编译在此阶段完成
测试 Test 使用适当的单元测试框架(例如JUnit)运行测试。
包装 package 创建JAR/WAR包如在 pom.xml 中定义提及的包
检查 verify 对集成测试的结果进行检查,以保证质量达标
安装 install 安装打包的项目到本地仓库,以供其他项目使用
部署 deploy 拷贝最终的工程包到远程仓库中,以共享给其他开发人员和工程

使用默认的生命周期时,Maven将首先验证项目,然后将编译源代码,运行单元测试,再打包二进制文件(例如:jar),然后再对包文件进行集成测试(如果需要的话),再校验包文件,并将已经校验的包文件安装到本地仓库,然后在指定的环境中部署包。

3、生命周期阶段的执行顺序

  • 各生命周期的阶段会被顺序地执行(包括那些这里没有展示的其他生命周期阶段)。

  • 而且在调用一个生命周期阶段时,maven 不仅执行指定的构建阶段,也会执行指定构建阶段之前的每一个阶段

比如,在默认生命周期中,只需要调用最后一个deploy生命阶段,即可执行前面所有阶段:

mvn deploy  // 会先执行前面的所有阶段

mvn install  // 会先执行前面的 validate ... verify 等阶段
  • 同样的命令可以用在多模块的情况下(即包含一个或多个子项目的工程):

      mvn clean install
      // 会遍历所有的子项目,并且运行clean命令,然后运行install命令(包含所有之前步骤的命令)	
    
  • 构建命令中也可以加入插件目标

    • 一个插件目标代表一个特定的任务(比构建阶段更为精细)。这些目标的执行顺序取决于调用目标和构建阶段的顺序。例如下面的命令:

        mvn clean dependency:copy-dependencies package
        // 其中clean 和 pakage 是构建阶段,dependency:copy-dependencies 是目标。
        // 执行顺序是` clean 阶段 -> dependency:copy-dependencies 目标 -> package 阶段 `
      

4、Clean 生命周期

clean 阶段用于清除上一次编译之后在target包下生成的字节码文件。

阶段 描述
pre-clean 执行一些清理前需要完成的工作
clean 清理上一次构建生成的文件
post-clean 执行一些清理后需要完成的工作

5、Site生命周期

阶段 描述
pre-site 执行一些在生成站点之前需要完成的工作
site 生成项目的站点文档
post-site 执行一些在生成站点之后需要完成的工作
site-deploy 将生成的站点文件发布到远程服务器上

猜你喜欢

转载自blog.csdn.net/lijing742180/article/details/84618896