Maven 构建生命周期

简介: Maven的构建生命周期包括验证、编译、测试、打包、检查、安装和部署等阶段,用于项目构建和发布。它有三个标准生命周期:Clean(清除目标目录)、Default(编译、测试、打包、验证、安装和部署)和Site(生成项目站点)。插件目标细化了任务,可绑定到不同阶段,通过命令行按顺序执行,如`mvn clean dependency:copy-dependencies package`先执行清理、然后复制依赖,最后打包。

Maven 构建生命周期

Maven 构建生命周期定义了一个项目构建跟发布的过程。

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

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

1、Clean 生命周期:

clean:删除目标目录中的编译输出文件。这通常是在构建之前执行的,以确保项目从一个干净的状态开始。
2、Default 生命周期(也称为 Build 生命周期):

validate:验证项目的正确性,例如检查项目的版本是否正确。
compile:编译项目的源代码。
test:运行项目的单元测试。
package:将编译后的代码打包成可分发的格式,例如 JAR 或 WAR。
verify:对项目进行额外的检查以确保质量。
install:将项目的构建结果安装到本地 Maven 仓库中,以供其他项目使用。
deploy:将项目的构建结果复制到远程仓库,以供其他开发人员或团队使用。
3、Site 生命周期:

site:生成项目文档和站点信息。
deploy-site:将生成的站点信息发布到远程服务器,以便共享项目文档。

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

例如,考虑下面的命令:

clean 和 pakage 是构建阶段,dependency:copy-dependencies 是目标

mvn clean dependency:copy-dependencies package
这里的 clean 阶段将会被首先执行,然后 dependency:copy-dependencies 目标会被执行,最终 package 阶段被执行。

相关文章
|
网络协议 编译器 Go
玩转gRPC—深入概念与原理
玩转gRPC—深入概念与原理
353 0
|
9月前
|
存储 缓存 运维
阿里云先知安全沙龙(上海站)——后渗透阶段主机关键信息自动化狩猎的实现与应用
本文介绍了在后渗透测试中使用LSTAR工具和PowerShell脚本进行RDP状态查询、端口获取及凭据收集的过程,强调了高强度实战场景下的OPSEC需求。通过MITRE ATT&CK框架的应用,详细阐述了凭证访问、发现和收集等关键技术,确保攻击者能够隐蔽、持续且高效地渗透目标系统,最终获取核心数据或控制权。文中还展示了SharpHunter等工具的自动化实现,进一步提升了操作的安全性和效率。
|
9月前
|
传感器 安全 物联网
阿里云先知安全沙龙(北京站) ——车联网安全渗透测试思路分享
本文介绍了智能汽车的整车架构、协议栈结构、攻击点分析、渗透思路及案例分享。整车架构涵盖应用层、协议层和物理层,详细解析各层次功能模块和通信机制。攻击点包括Wi-Fi、USB、NFC等,展示车辆通信接口和系统组件的安全风险。渗透思路从信息收集到系统内部探索,利用固件漏洞控制车辆功能。案例展示了网段隔离不足导致的SSH访问和OTA日志审计漏洞,揭示了潜在的安全威胁。
|
存储 网络协议 Linux
|
安全 Windows
【红队APT】钓鱼篇&Office-CVE&RLO隐藏&压缩包释放&免杀打包捆绑
【红队APT】钓鱼篇&Office-CVE&RLO隐藏&压缩包释放&免杀打包捆绑
233 1
|
XML Web App开发 JSON
HTTP代理神器Fiddler的配置
HTTP代理神器Fiddler的配置
|
编译器 C语言 图形学
SCADA系统基于IEC 61131-3标准的编程软件
SCADA系统基于IEC 61131-3标准的编程软件
|
分布式计算 负载均衡 算法
Flink---5、聚合算子、用户自定义函数、物理分区算子、分流、合流
Flink---5、聚合算子、用户自定义函数、物理分区算子、分流、合流
|
Web App开发 C语言 开发者
鸿蒙源码构建工具Gn 与 Ninja 的介绍及使用入门
鸿蒙源码构建工具Gn 与 Ninja 的介绍及使用入门