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 构建生命周期
相关文章:

Maven 生命周期
文章目录 Maven 生命周期- Clean 生命周期- Build 生命周期- Site 生命周期 Maven 生命周期 Maven 有以下三个标准的生命周期: Clean 生命周期: clean:删除目标目录中的编译输出文件。这通常是在构建之前执行的,以确保项目从一个…...

网络不通该如何手动下载torch
如果遇到pip install torch2.5.0 下载不了的情况,大部分是网络的问题.可以考虑下载wheel文件在去安装 查看对应的cuda版本(举个例子:cuda为12.4,找到这个版本的 复制到服务器上下载): 有conda和pip下载的两种方式,二者选其一:如果没有安装anaconda,就直接使用pip的方式下载 如…...

基础电路的学习
1、戴维南定理 ①左边的图可简化为一个电阻+一个电压源。② ③电压源可相当于开路。将R2移到左边,R1和R2相当于并联。RR1//R2 Rx和Rt相等时,灵敏度最大,因此使Rt10K。 104电容是0.1uf。 三位数字的前两位数字为标称容量的有效数…...

对 MYSQL 架构的了解
MySQL 是一种广泛使用的关系型数据库管理系统,其架构主要包括以下几个关键部分: 一、连接层 客户端连接管理:MySQL 服务器可以同时处理多个客户端的连接请求。当客户端应用程序(如使用 Java、Python 等语言编写的程序)…...

C#中方法参数传值和传引用的情况
对于引用类型 - 传类类型的具体值时 此时传的是引用 - 单纯传类类型 此时传的是个test引用的副本,在方法内修改的是这个副本的指向 传string,集合同理,只要是指向新对象,就是引用副本在指向 对于值类型 - 传普通值类型 …...

获取显示器(主/副屏)友好名称(FriendlyName)
在开发涉及多显示器的应用程序时,获取显示器的友好名称(Friendly Name)是一个常见需求。本文将深入探讨GetMonitorFriendlyName 方法,了解其实现细节和工作原理。 方法签名 public static string GetMonitorFriendlyName(bool i…...

Apache Solr RCE(CVE-2017-12629)--vulhub
Apache Solr 远程命令执行漏洞(CVE-2017-12629) Apache Solr 是一个开源的搜索服务器。Solr 使用 Java 语言开发,主要基于 HTTP 和 Apache Lucene 实现。原理大致是文档通过Http利用XML加到一个搜索集合中。查询该集合也是通过 http收到一个…...

2.3 携程的hook实现及dlsym函数
背景知识:(排除static 情况) 一个进程中可以有相同的命名吗? -- 不能 两个进程之间可以有相同的命名吗?--可以 一个进程和另一个静态库可以有相同的命名吗?--不能 一个进程和另一个动态库之间可以有相同…...

机器学习之KNN算法
K-Nearest Neighbors (KNN) 是一种常见的机器学习算法,广泛应用于分类和回归问题。KNN是一种基于实例的学习方法,它利用训练数据集的实例来进行分类或回归预测。在KNN中,预测的结果依赖于距离度量函数计算出的最近邻实例的标签或值。下面我们…...

《全排列问题》
题目描述 按照字典序输出自然数 11 到 nn 所有不重复的排列,即 nn 的全排列,要求所产生的任一数字序列中不允许出现重复的数字。 输入格式 一个整数 nn。 输出格式 由 1∼n1∼n 组成的所有不重复的数字序列,每行一个序列。 每个数字保留…...

pycharm 快捷键
PyCharm 是一款功能强大的集成开发环境(IDE),提供了丰富的快捷键来提高开发效率。以下是一些常用的 PyCharm 快捷键(基于 Windows/Linux 系统,Mac 系统可能略有不同): 通用快捷键 功能快捷键&a…...

若依微服务如何获取用户登录信息
文章目录 1、需求提出2、应用场景3、解决思路4、注意事项5、完整代码第一步:后端获取当前用户信息第二步:前端获取当前用户信息 5、运行结果6、总结 1、需求提出 在微服务架构中,获取当前用户的登录信息是开发常见的需求。无论是后端处理业务…...

RunCam WiFiLink连接手机图传测试
RunCam WiFiLink中文手册从这里下载 一、摄像头端 1.连接天线(易忘) 2.打开摄像头前面的盖子(易忘) 3.接上直流电源,红线为正,黑线为负 4.直流电源设置电压为14v,电流为3.15A, 通…...

TCP三次握手,四次挥手
三次握手 第一次握手:客户端向服务器发送一个 SYN 包,其中 SYN 标志位被设置为 1,表示客户端请求建立连接,并随机生成一个初始序列号 seqx 。此时客户端进入 SYN_SENT 状态,等待服务器的确认1.第二次握手:服…...

Mono里建立调试C#脚本运行环境
前面已经介绍了怎么样来执行一个嵌入式的脚本框架, 这个框架是mono编写的一个简单的例子。 如果不清楚,可以参考前文: https://blog.csdn.net/caimouse/article/details/144632391?spm=1001.2014.3001.5501 本文主要来介绍一下,我们的C#脚本是长得怎么样的,它大体如下…...

Linux dnf 包管理工具使用教程
简介 dnf 是基于 Red Hat Linux 发行版的下一代包管理工具,它代替 yum 提供更好的性能、更好的依赖处理和更好的模块化架构。 基础语法 dnf [options] [command] [package] 常用命令用法 更新元数据缓存 sudo dnf check-update# 检查已安装的包是否有可用的更…...

Java 创建线程的方式有哪几种
在 Java 中,创建线程的方式有四种,分别是:继承 Thread 类、实现 Runnable 接口、使用 Callable 和 Future、使用线程池。以下是详细的解释和通俗的举例: 1. 继承 Thread 类 通过继承 Thread 类并重写 run() 方法来创建线程。 步…...

计算机的错误计算(一百八十七)
摘要 用大模型计算 sin(123.456789). 其自变量为弧度。结果保留16位有效数字。第一个大模型是数学大模型。先是只分析,不计算;后经提醒,才给出结果,但是是错误结果。第二个大模型,直接给出了Python代码与结果…...

12. 最大括号深度
题目描述 现有一字符串仅由"(",")", "{","}", "[", "]"六种括号组成。若字符串满足以下条件之一, 则为无效字符串:任一类型的左右括号数量不相等 存在未按正确顺序(先左后右)闭合的括号输出…...

进程与线程以及如何查看
长期补充,建议关注收藏! 定义 特性进程线程定义程序执行的基本单位执行中的最小单位资源拥有独立的内存空间和资源共享进程的资源开销创建和销毁的开销较大创建和销毁的开销较小执行单位进程中可以有多个线程线程是执行单元,必须依赖于进程并…...

BlueLM:以2.6万亿token铸就7B参数超大规模语言模型
一、介绍 BlueLM 是由 vivo AI 全球研究院自主研发的大规模预训练语言模型,本次发布包含 7B 基础 (base) 模型和 7B 对话 (chat) 模型,同时我们开源了支持 32K 的长文本基础 (base) 模型和对话 (chat) 模型。 更大量的优质数据 :高质量语料…...

Webpack学习笔记(4)
1.缓存 可以通过命中缓存降低网络流量,是网站加站速度更快。 然而在部署新版本时,不更改资源的文件名,浏览器可能认为你没有更新,所以会使用缓存版本。 由于缓存存在,获取新的代码成为问题。 接下来将配置webpack使…...

28、论文阅读:基于像素分布重映射和多先验Retinex变分模型的水下图像增强
A Pixel Distribution Remapping and Multi-Prior Retinex Variational Model for Underwater Image Enhancement 摘要介绍相关工作基于模型的水下图像增强方法:无模型水下图像增强方法:基于深度学习的水下图像增强方法: 论文方法概述像素分布…...

5.interview-self-introduction
1.保证电话面试来的时候,可以接听,保持电话通常 interviews will be arranged recently.please keep your phone line open and make sure you can answer th call when the phone interview comes. speak loudly and slow down your speaking voice &a…...

高性能MySQL-查询性能优化
查询性能优化 1、为什么查询这么慢2、慢查询基础:优化数据访问2.1 是否向数据库请求了不需要的数据2.2 MySQL是否存在扫描额外的记录 3、重构查询方式3.1 一个复杂查询还是多个简单查询3.2 切分查询3.3 分解联接查询 4、查询执行的基础4.1 MySQL的客户端/服务器通信…...

如何有效修复ffmpeg.dll错误:一站式解决方案指南
当您遇到提示“ffmpeg.dll文件丢失”的错误时,这可能导致相关的应用程序无法启动或运行异常。本文将详细介绍如何有效地解决ffmpeg.dll文件丢失的问题,确保您的应用程序能够恢复正常运行。 ffmpeg.dll是什么?有哪些功能? ffmpeg.…...

8086汇编(16位汇编)学习笔记00.DEBUG命令使用解析及范例大全
8086汇编(16位汇编)学习笔记00.DEBUG命令使用解析及范例大全-C/C基础-断点社区-专业的老牌游戏安全技术交流社区 - BpSend.net[md]启动 Debug,它是可用于测试和调试 MS-DOS 可执行文件的程序。 Debug [[drive:][path] filename [parameters]] 参数 [drive:…...

查看mysql的冷数据配置比例
查看mysql的冷数据配置比例 -- 真正的LRU链表,会被拆分为两个部分,一部分是热数据,一部分是冷数据,这个冷热数据的比例是由innodb_old_blocks_pct参数控制的,它默认是37,也就是说冷数据占比37%。 show GLO…...

【Java基础面试题028】Java中的hashCode和equals方法,与==操作符有什么区别?
回答重点 hashcode、equals 和 都是Java中用于比较对象的三种方式,但是它们的用途和实现还是有挺大区别的。 hashcode用于散列存储结构中确定对象的存储位置。可用于快速比较两个对象是否不同,因为如果它们的哈希码不同,那么它们肯定不相等…...

在C#中测试比较目录的不同方法以查看它们有哪些共同的文件
C# 中的示例“比较目录以查看它们有哪些共同的文件”使用Directory.GetFiles获取两个目录中的文件。它对文件进行排序,并比较两个排序后的列表以查看哪些文件位于第一个目录中、第二个目录中或两个目录中。有关其工作原理的详细信息,请参阅该示例。 Kur…...