版权声明:原创不易,欢迎分享和转载,同时请注明出处,谢谢! https://blog.csdn.net/lijing742180/article/details/84618896
构建生命周期是指为一个工程进行项目构建和发布的过程,它是 Maven 中的一个核心概念。
1、标准生命周期
Maven中内置了三个标准的构建生命周期:
- default(或build):处理工程的部署
- clean:处理工程的清理
- site:负责创建工程的站点文档。
这三个构建生命周期都是由一系列不同的构建阶段组成,每一个构建阶段代表了生命周期的一个阶段。
2、default 生命周期的阶段
一个典型的 Maven default(build)生命周期主要由以下几个阶段的序列组成(此处并完全列出):
阶段 | 描述 |
---|---|
验证 validate | 验证项目是否正确且所有必须信息是可用的 |
编译 compile | 源代码编译在此阶段完成 |
测试 Test | 使用适当的单元测试框架(例如JUnit)运行测试。 |
包装 package | 创建JAR/WAR包如在 pom.xml 中定义提及的包 |
检查 verify | 对集成测试的结果进行检查,以保证质量达标 |
安装 install | 安装打包的项目到本地仓库,以供其他项目使用 |
部署 deploy | 拷贝最终的工程包到远程仓库中,以共享给其他开发人员和工程 |
使用默认的生命周期时,Maven将首先验证项目,然后将编译源代码,运行单元测试,再打包二进制文件(例如:jar),然后再对包文件进行集成测试(如果需要的话),再校验包文件,并将已经校验的包文件安装到本地仓库,然后在指定的环境中部署包。
3、生命周期阶段的执行顺序
-
各生命周期的阶段会被顺序地执行(包括那些这里没有展示的其他生命周期阶段)。
-
而且在调用一个生命周期阶段时,maven 不仅执行指定的构建阶段,也会执行指定构建阶段之前的每一个阶段
比如,在默认生命周期中,只需要调用最后一个deploy
生命阶段,即可执行前面所有阶段:
mvn deploy // 会先执行前面的所有阶段
mvn install // 会先执行前面的 validate ... verify 等阶段
-
同样的命令可以用在多模块的情况下(即包含一个或多个子项目的工程):
mvn clean install // 会遍历所有的子项目,并且运行clean命令,然后运行install命令(包含所有之前步骤的命令)
-
构建命令中也可以加入插件目标
-
一个插件目标代表一个特定的任务(比构建阶段更为精细)。这些目标的执行顺序取决于调用目标和构建阶段的顺序。例如下面的命令:
mvn clean dependency:copy-dependencies package // 其中clean 和 pakage 是构建阶段,dependency:copy-dependencies 是目标。 // 执行顺序是` clean 阶段 -> dependency:copy-dependencies 目标 -> package 阶段 `
-
4、Clean 生命周期
clean 阶段用于清除上一次编译之后在target包下生成的字节码文件。
阶段 | 描述 |
---|---|
pre-clean | 执行一些清理前需要完成的工作 |
clean | 清理上一次构建生成的文件 |
post-clean | 执行一些清理后需要完成的工作 |
5、Site生命周期
阶段 | 描述 |
---|---|
pre-site | 执行一些在生成站点之前需要完成的工作 |
site | 生成项目的站点文档 |
post-site | 执行一些在生成站点之后需要完成的工作 |
site-deploy | 将生成的站点文件发布到远程服务器上 |