生命周期的定义
Maven的生命周期(lifecycle
)是对构建过程进行的抽象。
它包含了项目的清理、初始化、编译、测试、打包、集成测试、验证、部署和站点生成等几乎所有的构建步骤。
它将项目整体划分为一个个阶段,按顺序依次执行,也可以指定执行到某个阶段,然后结束。
因为Maven的生命周期是抽象的,因此它不做任何的实际工作,全部由插件(plugin
)完成。
生命周期的分类
Maven的默认插件
三个构建生命周期
Maven 的内部有三个标准生命周期,分别是 : clean, default, site
标准生命周期 | 作用 |
---|---|
clean |
项目清理 |
default(build) |
项目部署 |
site |
项目站点文档创建 |
生命周期与阶段
Maven将生命周期(lifecycle)
划分为一个个的阶段 (phase)
一系列顺序执行的阶段 (phase)
,构成一个完整的生命周期(lifecycle)
。
比如执行mvn clean
命令,该命令包含以下阶段:
pre-clean:执行一些需要在clean之前完成的工作
clean:移除所有上一次构建生成的文件
post-clean:执行一些需要在clean之后立刻完成的工作
这三个阶段按顺序全部执行完成后,才算完成了clean生命周期。
clean生命周期
clean生命周期通过clean插件(自带)完成,功能是删除当前项目的target目录(可自行尝试)
site生命周期
site生命周期:程序员可以使用 Maven 提供的 maven-site-plugin
插件(该插件不是默认插件,需要引用
)让 Maven 生成一个 Web 站点, 以站点的形式发布信息。
default(build)生命周期
clean生命周期,只有一个阶段,点击clean插件即可完成。
site生命周期,和程序开发的关系并不大,作为一个程序员,我平时几乎用不到该生命周期。
三大生命周期中,和程序员关系最密切的 是 default(build)生命周期
default(build)生命周期
和程序开发息息相关,我认为还是有了解的必要。
default(build)生命周期各阶段详解
核心阶段 | 详解 |
---|---|
validate | 验证项目是否正确,所有必要信息是否可用(很少单独使用) |
compile | 编译项目的源代码(将src/main中的java代码编译成class文件,输出到targe目录下) |
test | 将单元测试的资源文件和代码进行编译,生成的文件位于target/test-classes (打包部署请跳过该阶段) |
package | 把class文件,resources文件打包成jar包(也可以是war包),生成的jar包位于target目录下 |
verify | 检查包是否有效(很少单独使用) |
install | 将jar部署到本地仓库,本地的其他模块依赖该jar包时,可以直接从本地仓库去获取 |
deploy | 将jar包部署到远端仓库,需要在maven的setting.xml中配置私服的用户名和密码,以及在pom.xml配置 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!