Maven 生命周期

文章目录

  • Maven 生命周期
    • - Clean 生命周期
    • - Build 生命周期
    • - 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 构建生命周期

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/941058.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

力学笃行(二)Qt 示例程序运行

Qt 示例程序运行 1. Qt 示例程序简介1.1 编译报错问题: qt: error: cannot open C:\Users\我的电脑\AppData\Local\Temp\main.obj.34588.15.jom for write 2. Qt 示例程序主要分类2.1 Widgets 示例2.2 Qt Quick 示例2.3 3D 示例2.4 多媒体示例2.5 网络示例2.6 数据库示例2.7 图…

机器学习基础算法 (二)-逻辑回归

python 环境的配置参考 从零开始:Python 环境搭建与工具配置 逻辑回归是一种用于解决二分类问题的机器学习算法,它可以预测输入数据属于某个类别的概率。本文将详细介绍逻辑回归的原理、Python 实现、模型评估和调优,并结合垃圾邮件分类案例进…

《机器学习》支持向量机

目录 结构风险(Structural Risk)和经验风险(Empirical Risk) 经验风险(Empirical Risk): 结构风险(Structural Risk): L0范数: L0范数是指向…

Converseen:全能免费批量图像处理专家

还在为繁琐的图像处理任务而烦恼吗?Converseen 是一款功能卓越且完全免费的批量图像处理软件,它以其卓越的易用性、惊人的处理速度和强大的实用性赢得了用户的广泛赞誉。无论您是专业摄影师、设计师,还是仅仅需要处理大量图片,Con…

Linux下基于最新稳定版ESP-IDF5.3.2开发esp32s3入门任务间的通讯-信号量【入门三】

继续上一篇任务创建 【Linux下基于最新稳定版ESP-IDF5.3.2开发esp32s3入门任务创建【入门二】-CSDN博客】 今天要实现再创建一个任务。【二值和互斥都进行测试】 ①、通过任务A发送一个信号量,另一个任务得到信号量后再发送helloworld。 ②、两个任务通过互斥信…

windows安装Elasticsearch及增删改查操作

1.首先去官网下载Elasticsearch 下载地址 我这里选择的是7.17.18 选择windows版本 下载完成后解压是这样的 下载完成后点击elasticsearch.bat启动elasticsearch服务 输入http://localhost:9200看到如下信息说明启动成功。 还有记得修改elasticsearch.yml文件,…

虚拟机VMware的安装问题ip错误,虚拟网卡

要么没有虚拟网卡、有网卡远程连不上等 一般出现在win11 家庭版 1、是否IP错误 ip addr 2、 重置虚拟网卡 3、查看是否有虚拟网卡 4、如果以上检查都解决不了问题 如果你之前有vmware 后来卸载了,又重新安装,一般都会有问题 卸载重装vmware: 第一…

户籍管理系统的设计与实现【源码+文档+部署讲解】

目 录 摘 要 Abstract 1 系统大概 1.1 系统背景 1.2 研究意义 1.3 本文结构 1.4 开发平台简介 1.4.1 Java语言的特点 1.4.2 J2EE概述 1.4.3 B/S结构概述 1.4.4 MySQL 1.4.5 Tomcat 1.4.6 JSP.NET 1.4.7 开发流程 1.4.8 Eclipse简介 1.4.9 of…

【Rust自学】5.1. 定义并实例化struct

喜欢的话别忘了点赞、收藏加关注哦,对接下来的教程有兴趣的可以关注专栏。谢谢喵!(・ω・) 5.1.1. 什么是struct struct的中文意思为结构体,它是一种自定义的数据类型,它允许程序为相关联的值命名和打包&am…

【自动驾驶】单目摄像头实现自动驾驶3D目标检测

🍑个人主页:Jupiter. 🚀 所属专栏:传知代码 欢迎大家点赞收藏评论😊 目录 概述算法介绍演示效果图像推理视频推理 核心代码算法处理过程使用方式环境搭建下载权重文件pytorch 推理(自动选择CPU或GPU&#x…

Python+OpenCV系列:AI看图识人、识车、识万物

在人工智能风靡全球的今天,用 Python 和 OpenCV 结合机器学习实现物体识别,不仅是酷炫技能,更是掌握未来的敲门砖。本篇博文手把手教你如何通过摄像头或图片输入,识别人、动物、车辆及其他物品,让你的程序瞬间具备 AI …

永磁同步电机负载估计算法--自适应扩张状态观测器

一、 原理介绍 在线性扩张观测器中,LESO观测器增益ω0 决定了观测器的跟踪速度,ω0 越大,观测器估计精度越高, 抗干扰能力越强,瞬态响应速度加快,过大则会引入高频噪声使系统不稳定。为使观测器在全速域内…

【Spring事务】深入浅出Spring事务从原理到源码

什么是事务 保证业务操作完整性的一种数据库机制 (driver 驱动)事务特定 ACID A 原子性 (多次操作 要不一起成功 要不一起失败 (部分失败 savepoint)) C 一致性 (事务开始时数据状态&#xff0c…

Apache解析漏洞(apache_parsingCVE-2017-15715)

apache_parsing 到浏览器中访问网站 http://8.155.8.239:81/ 我们写一个木马 1.php.jpg 我们将写好的木马上传 会得到我们上传文件的路径 我们访问一下 发现上传成功 发现木马运行成功,接下来使用蚁剑连接我们的图片马 获取 shell 成功 CVE-2013-454 我们还是到…

CCF-GESP 等级考试 2023年9月认证C++二级真题解析

2023年9月真题 一、单选题(每题2分,共30分) 正确答案:D 解析:考察知识点:计算机基础 本题属于考察计算机基础知识。中国第一台计算机通用数字电子计算机于 1958 年 6 月由中科院计算所研制成功。那时候的逻…

linux环境使用yum方式安装nginx

linux环境使用yum方式安装nginx 一、nginx官网 二、nginx安装 点击首页的 Docs 或者 install 都可以,最终都是进入到Installing nginx页面 因为安装的服务器环境是linux centos 所以选择 Installation on Linux下面 packages 跳转链接 点击packages后 最终会跳转…

CS 144 check6: buiding an IP router

Lecture Notes Exercises 路由器的任务是根据路由表转发接收到的数据报:路由表是一系列规则,用于指导路由器针对任何给定的数据报应如何进行转发。 发送出什么接口。下一跳的IP地址。 这个check的工作是实现一个路由器,它可以为任何给定的…

Android Studio IDE环境配置

​需要安装哪些东西: Java jdk Java Downloads | OracleAndroid Studio 下载 Android Studio 和应用工具 - Android 开发者 | Android DevelopersAndroid Sdk 现在的Android Studio版本安装时会自动安装,需要注意下安装的路径Android Studio插件…

时钟周期、机器周期及指令周期是什么关系?

组成原理中,时钟周期、机器周期和指令周期是三个至关重要的概念,它们共同定义了计算机执行指令的基本时间框架。本文将对这三个周期进行详细介绍,并展示它们的工作原理。 一、时钟周期(Clock Cycle) 定义与作用 主…

YOLOv8改进,YOLOv8引入Hyper-YOLO的MANet混合聚合网络+HyperC2Net网络

摘要 理论介绍 MANet 的目标是通过多种卷积操作的协同作用,提高特征提取能力,并加强梯度流动,从而提升模型在不同层次的特征表示和语义深度。MANet 结合了三种卷积变体,通过混合使用它们来提高视觉特征的多样性和信息流动性。 HyperC2Net 的主要目标是通过超图结构对多层次…