Maven生命周期

Maven生命周期

2026年5月16日·#javawebai/后端基础Java/Maven·593 字 3 分钟
浏览量加载中...
AI 摘要- DeepSeek

Maven三套生命周期(clean、default、site)的核心阶段及插件执行机制

Maven生命周期#

定义#

Maven 的生命周期是对所有项目构建过程的抽象和统一,描述了一次项目构建经历哪些阶段。

Maven 从大量项目和构建工具中总结了一套高度完善的构建生命周期,包含清理、初始化、编译、测试、打包、集成测试、验证、部署和站点生成等几乎所有构建步骤。

三套生命周期#

Maven 将项目构建生命周期划分为三套,相互独立:

生命周期三套

生命周期作用
clean清理工作
default核心工作:编译、测试、打包、安装、部署等
site生成报告、发布站点等

生命周期阶段详解#

生命周期阶段

常用阶段:

阶段说明
clean移除上一次构建生成的文件
compile编译项目源代码
test使用单元测试框架运行测试(JUnit)
package将编译后的文件打包(jar、war 等)
install安装项目到本地仓库

执行顺序:同一套生命周期中,阶段是有顺序的,后面的阶段依赖于前面的阶段。执行后面的生命周期时,前面的生命周期都会执行。

跨生命周期:package 和 compile 属于同一套生命周期,执行 package 时 compile 会自动运行;但 clean 与 package 不属于同一套,执行 package 时 clean 不会运行。

插件机制#

Maven 的生命周期是抽象的,生命周期本身不做任何实际工作。实际任务(如源代码编译)都交由插件来完成。

插件执行机制

生命周期顺序:clean → validate → compile → test → package → verify → install → site → deploy

日常开发重点关注:clean → compile → test → package → install

执行方式#

方式一:IDEA 中执行 在 IDEA 右侧 Maven 工具栏中选择对应生命周期,双击执行。

方式二:命令行执行 在 Maven 项目目录下打开命令行,执行:

Terminal window
mvn compile # 编译
mvn test # 测试
mvn package # 打包
mvn install # 安装到本地仓库

注意事项#

  • 同一套生命周期中,执行后面的阶段会自动执行前面所有阶段。
  • 不同套的生命周期互不影响(如 clean 和 default 互不触发)。
  • 生命周期本身是抽象定义,具体工作由插件实现。

评论区

[ 标签 ]
# AI37# AI 编程2# AI工具1# AI绘图1# AI辅助开发2# Ajax7# Apifox1# AstrBot3# Astro2# CC Switch1# CDN2# Claude Code1# claudecode2# ClaudeCode1# Cloudflare2# CloudFlare2# CloudFlare-ImgBed3# coc4# CSS10# DeepSeek6# deepseek2# DELETE1# Docker5# EdgeOne3# Gist1# git1# GitHub1# hexo-circle-of-friends1# HTML9# HTTP10# ImageManager1# Java23# java13# JavaScript11# JavaWeb113# JDBC7# JSON2# JUnit1# LangChain25# Linux4# Logback1# Maven17# Muse Spark1# Mybatis1# MyBatis18# MySQL45# MySql1# NapCat1# Node.js1# obsidian2# Obsidian5# OpenCode4# ORM1# PathVariable1# PicGo1# PyCharm1# Python70# RequestBody1# RequestMapping1# RESTful风格1# skills1# Slf4j1# SpringBoot37# SpringMVC5# SQL2# Streamlit5# Svelte2# TailwindCSS1# Telegram3# Tlias2# Vercel1# vscode2# Vue20# Waline3# Web3# WebDAV1# Web基础6# Web开发6# WinSCP1# YAML1# 三层架构1# 中二宣言1# 书籍1# 使用文档10# 写作1# 函数2# 刷步数1# 前端52# 动态1# 动漫1# 包1# 单词2# 博客8# 博客工作流1# 博客开发2# 参数接收1# 友链1# 反思2# 后端48# 图床6# 地图1# 备份2# 大模型1# 奇思妙想1# 存储1# 学习方法6# 学校1# 宝塔面板3# 宝宝10# 实战4# 对象1# 导航栏1# 工具2# 布局2# 开发1# 开发工具1# 开发规范1# 开心1# 异常处理1# 影视2# 微信1# 性能优化2# 总结1# 想法15# 感受1# 感悟11# 指南1# 提示词工程2# 插件5# 故障排除1# 效率工具2# 教程10# 数据分析9# 数据库27# 数据结构1# 文件操作2# 斩神1# 日常95# 日志框架1# 朋友圈1# 朱元璋1# 模块1# 模板1# 正则表达式2# 测试3# 游戏2# 爬虫7# 生活迁移1# 电影2# 电脑1# 碎碎念1# 视觉识别1# 类1# 类型注解1# 网络基础2# 网络教室1# 羊毛2# 脚本2# 脚本工具1# 自动化2# 蓝奏云1# 表单1# 订阅推荐2# 记录2# 评论系统1# 词根1# 词缀1# 说说1# 足迹1# 跑步2# 路径参数1# 转载2# 运动1# 部署11# 部落冲突1# 配置1# 随机图1# 面向对象5# 音乐3# 音标1# 项目实战11# 饮食1# 驼峰命名1# 高德地图1
[ 公告 ]

如果你喜欢,那么欢迎来到我的世界!

了解更多
[ 音乐 ]
封面

音乐

暂未播放

0:000:00
暂无歌词
找不到相关结果。
[ contents ]
[ 全部文章 ]