首页 专题 文章 代码 归档
Maven的生命周期和插件
2020.02.21 14:23 2020.02.21 14:23

1. 概述

在Maven出现之前,项目构建的生命周期就已经存在了,例如清理编译部署等操作。

Maven的生命周期就是为了对所有的构建过程进行抽象和统一。Maven的生命周期是抽象的,这意味着生命周期本身不做任何实际的工作,在Maven的设计中,实际的任务都交给插件来完成。

截图-1582265833

2. 三套周期

Maven拥有三套相互独立的生命周期,分别为clean、default、site。

每个生命周期都包含一些有序的阶段, 并且后面的阶段依赖前面的阶段,用户和Maven最直接的交互方式就是调用这些生命周期阶段。

三个生命周期是相互独立的,例如当用户调用clean生命周期的某个阶段,不会触发default生命周期的任何阶段,反之亦然,当用户调用default生命周期的时候,不会出发clean生命周期的任何阶段。

2.1. clean周期

在进行真正的构建工作之前做一些清理的工作

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

clean:清理上一次构建的文件

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

2.2. default生命周期

构建的核心部分,编译、测试、打包、部署、发布等

  • validate:验证该项目是正确的,并且确定所有必须的信息都是可用的
  • initialize:初始化构建状态,例如创建目标目录
  • generate-sources:生成要编译的任何源代码
  • process-source:处理源代码
  • generate-resources:生成要打包在包里的资源文件
  • process-resources:将资源文件处理并复制到目标文件夹
  • compile:编译项目主代码
  • process-classes:处理编译后的.class文件
  • generate-test-sources:如上
  • process-test-sources:如上
  • generate-test-resources:如上
  • process-test-resources:如上
  • test-compile:编译项目的测试代码
  • process-test-classes:如上
  • test:使用单元测试框架运行,测试代码不会被打包或部署
  • prepare-package:打包预处理
  • package:打包
  • pre-integration-test:继承测试之前准备
  • ntegration-test:集成测试
  • post-integration-test:集成测试后扫尾操作,例如清除运行时用到的环境变量
  • verify:检查是否打包标准且成功
  • install:将包安装在Maven本地仓库
  • deploy:将最终的包复制到远程仓库

2.3. site生命周期

生成项目报告、站点、发布站点

  • pre-site:执行一些在生成项目站点之前的操作
  • site:生成项目站点文档
  • post-site:执行一些在生成项目站点之后需要完成的操作
  • site-deploy:将生成的项目站点发布到服务器上

3. 命令行与生命周期

  • $ mvn clean:执行clean生命周期的clean阶段
  • $ mvn test:执行default生命周期的test阶段,会从default生命周期的第一个阶段执行到test阶段
  • $ mvn clean install:执行clean生命周期的clean阶段和default生命周期的install阶段
  • $ mvn clean deploy site-deploy:执行clean生命周期的clean阶段,执行default生命周期的deploy阶段,执行site生命周期的site-deploy阶段

Maven命令的话基本就是 "mvn +生命周期",所以掌握Maven的生命周期,就会对Maven有一定的了解

本节阅读完毕! (分享
二维码图片 扫描关注我们哟