【Java基础】Maven的生命周期(clean+site+default)

1. 前言

在 Maven 出现之前,项目构建的生命周期就已经存在,开发人员每天都在对项目进行清理,编译,测试及部署,但由于没有统一的规范,不同公司甚至不同项目之间的构建的方式都不尽相同。

Maven 从大量项目和构建工具中学习和反思,最后总结了一套高度完美的,易扩展的生命周期。这个生命周期将项目的清理、初始化、编译、测试、打包、集成测试、验证、部署和站点生成等几乎所有构建过程进行了抽象和统一。

2. 生命周期与插件的关系

Maven 生命周期是抽象的,其本身不能做任何实际工作,这些实际工作(如源代码编译)都通过调用 Maven 插件 中的插件目标(plugin goal)完成的。

为了更好的理解 Maven 生命周期、插件以及插件目标三者的关系,我们可以将 Maven 生命周期理解成一个抽象父类,将插件理解成其子类,将插件目标理解成子类中重写的方法。

3. 三套生命周期

Maven 拥有三套标准的生命周期:

  • clean:用于清理项目
  • default:用于构建项目
  • site:用于建立项目站点

每套生命周期包含一系列的构建阶段(phase),这些阶段是有顺序的,且后面的阶段依赖于前面的阶段。用户与 Maven 最直接的交互方式就是调用这些生命周期阶段。以 clean 生命周期为例,它包含 pre-clean、clean 以及 post-clean 三个阶段,当用户调用 pre-clean 阶段时,则只有 pre-clean 阶段执行;当用户调用 clean 阶段时,pre-clean 和 clean 阶段都会执行。当用户调用 post-clean 阶段时,则 pre-clean、clean 以及 post-clean 三个阶段都会执行。

3.1 clean 生命周期

clean 生命周期包括以下 3 个阶段。

  • pre-clean(清理前)
  • clean(清理)
  • post-clean(清理后)

3.2 default 生命周期

default 生命周期定义了项目真正构建时所需要的所有步骤,它是所有生命周期中最核心,最重要的部分。

default 生命周期包含非常多的阶段,如下表。

3.3 site生命周期

sit 生命周期的目的是建立和部署项目站点,Maven 能够根据 POM 包含的信息,自动生成一个友好的站点,该站点包含一些与该项目相关的文档。

site 生命周期包含以下 4 个阶段:

  • pre-site
  • site
  • post-site
  • site-deploy
相关推荐
lly20240623 分钟前
jQuery Mobile 表格
开发语言
惊讶的猫27 分钟前
探究StringBuilder和StringBuffer的线程安全问题
java·开发语言
jmxwzy30 分钟前
Spring全家桶
java·spring·rpc
Halo_tjn32 分钟前
基于封装的专项 知识点
java·前端·python·算法
m0_748233171 小时前
30秒掌握C++核心精髓
开发语言·c++
Fleshy数模1 小时前
从数据获取到突破限制:Python爬虫进阶实战全攻略
java·开发语言
Duang007_1 小时前
【LeetCodeHot100 超详细Agent启发版本】字母异位词分组 (Group Anagrams)
开发语言·javascript·人工智能·python
像少年啦飞驰点、1 小时前
零基础入门 Spring Boot:从“Hello World”到可上线的 Web 应用全闭环指南
java·spring boot·web开发·编程入门·后端开发
苍煜2 小时前
万字详解Maven打包策略:从基础插件到多模块实战
java·maven
froginwe112 小时前
Redis 管道技术
开发语言