Maven 生命周期

文章目录

  • [Maven 生命周期](#Maven 生命周期)
    • [- Clean 生命周期](#- Clean 生命周期)
    • [- Build 生命周期](#- Build 生命周期)
    • [- Site 生命周期](#- Site 生命周期)

Maven 生命周期

Maven 有以下三个标准的生命周期:

  • Clean 生命周期:
    • clean:删除目标目录中的编译输出文件。这通常是在构建之前执行的,以确保项目从一个干净的状态开始。
  • Build 生命周期: (也称:Default 生命周期)
    • validate:验证项目的正确性,例如检查项目的版本是否正确。
    • compile:编译项目的源代码。
    • test:运行项目的单元测试。
    • package:将编译后的代码打包成可分发的格式,例如 JAR 或 WAR。
    • verify:对项目进行额外的检查以确保质量。
    • install:将项目的构建结果安装到本地 Maven 仓库中,以供其他项目使用。
    • deploy:将项目的构建结果复制到远程仓库,以供其他开发人员或团队使用。
  • Site 生命周期:
    • site:生成项目文档和站点信息。
    • deploy-site:将生成的站点信息发布到远程服务器,以便共享项目文档。

每个生命周期又包含了多个生命周期阶段,生命周期阶由插件目标构成。

一个插件目标代表一个特定的任务(比构建阶段更为精细),这有助于项目的构建和管理。这些目标可能被绑定到多个阶段或者无绑定。不绑定到任何构建阶段的目标可以在构建生命周期之外通过直接调用执行。这些目标的执行顺序取决于调用目标和构建阶段的顺序。

- Clean 生命周期

Clean 生命周期用于删除目标目录中的编译输出文件。这通常是在构建之前执行的,以确保项目从一个干净的状态开始。

Clean 生命周期包含以下阶段:

阶段 处理 描述
pre-clean 执行一些需要在 clean 之前完成的工作 在清理之前执行一些特定的准备工作
clean 移除生成的文件 移除所有上一次构建生成的文件
post-clean 执行一些需要在 clean 之后完成的工作 在清理之后执行一些后续的工作

当运行某个阶段的时候,该生命周期(Clean 生命周期)内该阶段及该阶段之前的所有阶段都会被执行,例如:

  • 执行 mvn clean 将执行pre-clean、clean两个阶段
  • 执行 mvn post-clean 将执行pre-clean、clean、post-clean三个阶段

- Build 生命周期

Build(Default )生命周期是Maven最主要的生命周期。Build生命周期定义了一个项目构建跟发布的过程。

一个典型的 Maven Build 生命周期是由以下几类阶段的顺序组成的:

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

Build 生命周期的具体阶段如下:

阶段 处理 描述
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 部署 将项目包部署到远程仓库与其他开发者共享。

当运行某个阶段的时候,该生命周期(Build 生命周期)内该阶段及该阶段之前的所有阶段都会被执行

- Site 生命周期

Site 生命周期一般用来创建新的报告文档、部署站点等。

Site 生命周期的具体阶段如下:

阶段 处理 描述
pre-site 执行前置工作 执行一些需要在生成站点文档之前完成的工作。
site 生成站点文档 生成项目的站点文档。
post-site 执行后置工作 执行一些需要在生成站点文档之后完成的工作,并且为部署做准备。
site-deploy 部署站点文档 将生成的站点文档部署到特定的服务器上。

当运行某个阶段的时候,该生命周期(Site 生命周期)内该阶段及该阶段之前的所有阶段都会被执行

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

参考文章:
Maven 构建生命周期

相关推荐
全栈老实人_9 小时前
时间管理系统|Java|SSM|JSP|
java·开发语言·tomcat·maven
Zhu_S W10 小时前
SpringBoot项目的创建方式(五种)
java·spring boot·后端·maven·idea
蜜獾云11 小时前
maven-resources-production:ratel-fast: java.lang.IndexOutOfBoundsException
java·maven·intellij-idea
xiao_fwuu11 小时前
IDEA 打开 maven 的 settings.xml 文件
xml·maven·intellij-idea
莫名其妙小饼干13 小时前
时间管理系统|Java|SSM|JSP|
java·开发语言·maven·mssql
小张认为的测试1 天前
如何更改 maven 指定的 java 版本 set JAVA_HOME=C:\Program Files\Java\jdk1.8
java·开发语言·maven
阿哈831 天前
240004基于ssm+maven+mysql+Java的房屋租赁系统的设计与实现
java·mysql·maven
郑阿媛啊1 天前
阿里云Maven库地址、查看各个版本的jar包
maven
龙少95431 天前
【深入理解Maven】
java·maven