MAVEN生命周期
278人浏览 / 0人评论
MAVEN 包含三大标准生命周期 clean、default(build)以及site,每个标准生命周期中又划分为各执行阶段,日常工作中执行的maven命令就是通过运行指定的阶段来达成特定执行目标。
一、Clean 生命周期
作用于项目清理处理,包含以下阶段:
阶段 | 描述 |
---|---|
pre-clean | 执行一些需要在 clean 之前完成的工作 |
clean | 移除所有上次构建生成的文件 |
post-clean | 执行一些需要在 clean 之后完成的工作 |
当执行mvn clean
命令时,实际上就是指定上面的 clean 阶段,并会依次经过 pre-clean、clean 两个阶段执行。原因是在Clean生命周期中,运行某个阶段的时候,默认情况下其之前的所有阶段都会执行。
二、Default (Build) 生命周期
作用于项目构建部署处理,包含以下阶段:
阶段 | 描述 |
---|---|
validate(校验) | 校验项目是否正确并且所有必要的信息可以完成项目的构建过程 |
initialize(初始化) | 初始化构建状态,比如设置属性值 |
generate-sources(生成源代码) | 生成包含在编译阶段中的任何源代码 |
process-sources(处理源代码) | 处理源代码,比如说,过滤任意值 |
generate-resources(生成资源文件) | 生成将会包含在项目包中的资源文件 |
process-resources (处理资源文件) | 复制和处理资源到目标目录,为打包阶段最好准备 |
compile(编译) | 编译项目的源代码 |
process-classes(处理类文件) | 处理编译生成的文件,比如说对Java class文件做字节码改善优化 |
generate-test-sources(生成测试源代码) | 生成包含在编译阶段中的任何测试源代码 |
process-test-sources(处理测试源代码) | 处理测试源代码,比如说,过滤任意值 |
generate-test-resources(生成测试资源文件) | 为测试创建资源文件 |
process-test-resources(处理测试资源文件) | 复制和处理测试资源到目标目录 |
test-compile(编译测试源码) | 编译测试源代码到测试目标目录 |
process-test-classes(处理测试类文件) | 处理测试源码编译生成的文件 |
test(测试) | 使用合适的单元测试框架运行测试(Juint是其中之一) |
prepare-package(准备打包) | 在实际打包之前,执行任何的必要的操作为打包做准备 |
package(打包) | 将编译后的代码打包成可分发格式的文件,比如JAR、WAR或者EAR文件 |
pre-integration-test(集成测试前) | 在执行集成测试前进行必要的动作。比如说,搭建需要的环境 |
integration-test(集成测试) | 处理和部署项目到可以运行集成测试环境中 |
post-integration-test(集成测试后) | 在执行集成测试完成后进行必要的动作。比如说,清理集成测试环境 |
verify (验证) | 运行任意的检查来验证项目包有效且达到质量标准 |
install(安装) | 安装项目包到本地仓库,这样项目包可以用作其他本地项目的依赖 |
deploy(部署) | 将最终的项目包复制到远程仓库中与其他开发者和项目共享 |
与Clean生命周期类似,在执行Default生命周期中的某个阶段时,该阶段之前以及包含该阶段在内的所有阶段都会被执行。例如执行mvn install
命令时,就是指定上面的 install 阶段,会先顺序执行 validate、compile、package等阶段,最后执行 install 阶段将构建好的项目包安装到本地仓库。
若想要跳过某个阶段执行命令,常见的场景是跳过测试打包,需要执行命令:mvn package -Dmaven.test.skip=true
。
若想要纯净的构建项目至maven仓库,也就是先移除上次构建生成的文件,再重新构建文件,需要执行命令:mvn clean package
。
三、Site 生命周期
作用于创建报告文档、部署站点,包含以下阶段:
阶段 | 描述 |
---|---|
pre-site | 执行一些需要在生成站点文档之前完成的工作 |
site | 生成项目的站点文档 |
post-site | 执行一些需要在生成站点文档之后完成的工作 |
site-deploy | 将生成的站点文档部署到特定服务器 |
常用的命令是mvn site
和mvn site-deploy
。Site生命周期特点与Clean、Default类似,不再做过多阐述。
全部评论