news 2026/2/3 9:20:43

HoRain云--Maven 构建生命周期

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
HoRain云--Maven 构建生命周期

🎬 HoRain 云小助手:个人主页

⛺️生活的理想,就是为了理想的生活!


⛳️ 推荐

前些天发现了一个超棒的服务器购买网站,性价比超高,大内存超划算!忍不住分享一下给大家。点击跳转到网站。

目录

⛳️ 推荐

Maven 构建生命周期详解

Maven生命周期概述

三套生命周期详解

1. Clean生命周期

2. Default生命周期(核心生命周期)

3. Site生命周期

Maven生命周期与插件的关系

Maven生命周期的执行顺序

Maven生命周期在实际项目中的应用

1. 项目构建流程示例

2. 常见问题解决

Maven生命周期的优势

总结


Maven 构建生命周期详解

Maven生命周期概述

Maven的生命周期是对项目构建过程进行抽象和统一的机制,它将项目从源代码到可部署产品的整个流程划分为一系列标准化的阶段。Maven拥有三套相互独立的生命周期,它们分别是:

  1. Clean生命周期:用于清理项目
  2. Default生命周期(核心生命周期):项目构建的核心过程
  3. Site生命周期:用于生成项目站点文档

三套生命周期详解

1. Clean生命周期

Clean生命周期用于清理项目,包含三个阶段:

阶段描述
pre-clean执行清理前需要完成的工作
clean清理上一次构建生成的文件
post-clean执行清理后需要完成的工作

典型命令mvn clean

2. Default生命周期(核心生命周期)

Default生命周期是Maven最核心的生命周期,涵盖了项目构建的全过程,包含23个阶段:

阶段描述
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将编译后的代码打包成可分发格式(如JAR)
pre-integration-test集成测试前准备
integration-test执行集成测试
post-integration-test集成测试后处理
verify验证包是否有效且达到质量标准
install将包安装到本地Maven仓库
deploy将包部署到远程仓库

执行规则:在同一个生命周期内,执行后面的阶段时,前面的所有阶段会自动执行。例如,执行mvn test会先执行validate、compile,再执行test。

典型命令

3. Site生命周期

Site生命周期用于生成和发布项目站点文档:

阶段描述
pre-site生成站点前需要完成的工作
site生成项目站点文档
post-site生成站点后需要完成的工作
site-deploy将站点部署到服务器

典型命令mvn site

Maven生命周期与插件的关系

Maven生命周期是抽象的,实际工作由插件完成。每个生命周期阶段都绑定到特定的插件目标:

插件配置示例(在pom.xml中):

<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.1</version> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> </plugins> </build>

Maven生命周期的执行顺序

Maven执行生命周期阶段时遵循以下规则:

  1. 同一生命周期内:执行后面的阶段会自动执行前面的所有阶段

  2. 不同生命周期之间:按顺序执行

Maven生命周期在实际项目中的应用

1. 项目构建流程示例

# 清理并编译项目 mvn clean compile # 清理、编译、测试并打包 mvn clean test package # 安装到本地仓库 mvn clean install # 部署到远程仓库 mvn clean deploy

2. 常见问题解决

问题:编译跳过或类路径缺失解决方案:统一插件配置并显式声明编译源路径

<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.1</version> <configuration> <source>1.8</source> <target>1.8</target> <encoding>UTF-8</encoding> </configuration> </plugin> </plugins> </build>

Maven生命周期的优势

  1. 标准化构建流程:为项目构建提供统一规范
  2. 简化构建过程:通过生命周期阶段,开发者只需关注最终目标
  3. 插件化设计:通过插件实现具体功能,便于扩展和维护
  4. 依赖管理:自动处理项目依赖,避免手动管理JAR包
  5. 提高开发效率:自动化构建过程,减少人为错误

总结

Maven的生命周期是其核心机制之一,通过将构建过程抽象为标准化的阶段,Maven实现了项目构建的自动化和统一化。Default生命周期是Maven的核心,涵盖了项目构建的全过程,而Clean和Site生命周期分别用于清理项目和生成站点文档。

理解Maven生命周期对于高效使用Maven进行项目构建至关重要。通过合理利用生命周期阶段,开发人员可以轻松完成从编译、测试到打包、部署的整个构建流程,提高开发效率并确保项目质量。

❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄

💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍

🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/1/30 4:01:10

5分钟上手airPLS:智能基线校正工具完全指南

5分钟上手airPLS&#xff1a;智能基线校正工具完全指南 【免费下载链接】airPLS baseline correction using adaptive iteratively reweighted Penalized Least Squares 项目地址: https://gitcode.com/gh_mirrors/ai/airPLS 在光谱分析、色谱检测和信号处理领域&#x…

作者头像 李华
网站建设 2026/1/31 9:42:49

共享经济新基建:用MGeo镜像快速搭建网点地址审核系统

共享经济新基建&#xff1a;用MGeo镜像快速搭建网点地址审核系统 在共享充电宝、共享单车等共享经济场景中&#xff0c;网点地址的准确性和唯一性是运营管理的基础。加盟商提交的地址可能存在"XX商场1楼"与"一层"这类表述差异&#xff0c;传统规则匹配难以…

作者头像 李华
网站建设 2026/1/30 1:04:02

GNSS-SDR软件定义导航接收机:从理论到实践的全方位指南

GNSS-SDR软件定义导航接收机&#xff1a;从理论到实践的全方位指南 【免费下载链接】gnss-sdr GNSS-SDR, an open-source software-defined GNSS receiver 项目地址: https://gitcode.com/gh_mirrors/gn/gnss-sdr 在当今数字化时代&#xff0c;全球导航卫星系统&#xf…

作者头像 李华
网站建设 2026/1/30 6:00:56

Bodymovin完整安装教程:3步快速配置AE动画导出

Bodymovin完整安装教程&#xff1a;3步快速配置AE动画导出 【免费下载链接】bodymovin-extension Bodymovin UI extension panel 项目地址: https://gitcode.com/gh_mirrors/bod/bodymovin-extension Bodymovin作为业界领先的After Effects动画导出解决方案&#xff0c;…

作者头像 李华