maven-生命周期
maven将项目的生命周期抽象成了3套生命周期,每套生命周期又包含多个阶段,每套中具体包含哪些阶段是maven已经约定好的,但是每个节点具体需要做什么,是用户可以自己指定的。
3套生命周期是互相独立的,没有依赖关系,而每套生命周期中有多个阶段,每套中的多个阶段是有先后顺序的,并且后面的阶段依赖于前面的节点,用户可以时间使用mvn
命令来调用这些阶段去完成项目生命周期中具体操作
命令:
mvn 生命周期阶段 [生命周期阶段...]
clean生命周期
clean生命周期的目的是清理项目,它包含三个阶段:
阶段 | 描述 |
---|---|
pre-clean | 执行一些需要在clean之前完成的工作 |
clean | 移除所有上一次构件生成的文件 |
post-clean | 执行一些需要在clean之后立刻完成的工作 |
用户可以通过mvn pre-clean
来调用clean生命周期中的pre-clean
阶段的操作
调用mvn post-clean
会执行上面3个阶段所有的操作,每个生命周期中的后面的阶段会依赖于前面的阶段
default生命周期
这是maven主要的生命周期,主要用于构建应用,包括了23个阶段
阶段 | 描述 |
---|---|
validate | 校验:校验项目是否正确并且所有必要的信息可以完成项目的构建过程 |
initialize | 初始化:初始化构建状态,比如设置属性值 |
generate-sources | 生成源代码:生成包含在编译阶段中的任何源代码 |
process-sources | 处理源代码:处理源代码,比如,过滤任意值 |
generate-resources | 生成资源文件:生成将会包含在项目包中的资源文件 |
process-resources | 处理资源文件:复杂和处理资源到目标目录,为打包阶段做好准备 |
compile | 编译:编译项目的源代码 |
process-classes | 处理类文件:处理编译生成的文件,比如对javaclass文件做字节码优化 |
generate-test-sources | 生成测试代码:生成包含在编译阶段中的任何测试代码 |
process-test-sources | 处理测试代码:比如过滤任意值 |
generate-test-resources | 生成测试资源文件:为测试创建资源文件 |
process-test-resources | 处理测试资源文件:复制和处理测试资源到目标目录 |
test-compile | 编译测试源码:编译测试源代码到测试目标目录 |
process-test-classes | 处理测试类文件:处理测试源码编译生成的文件 |
test | 测试:使用适合的单元测试框架运行测试 |
prepare-package | 准备打包:在时间打包之前,执行任何的必要操作为打包做准备 |
package | 打包:将编译后的代码打包成可分发格式的文件,比如jar、war或者ear文件 |
pre-integration-test | 集成测试前置:在执行集成测试前进行必要的动作。比如搭建需要的环境 |
integration-test | 集成测试:处理和部署项目到可以运行集成测试环境中 |
post-integration-test | 集成测试后置:在执行集成测试后进行必要的动作。比如清理集成测试环境 |
verify | 验证:运行人员的检查来验证项目包有效且达到质量标准 |
install | 安装:安装项目包到本地仓库,这样项目包可以用作其它本地项目的依赖 |
deploy | 部署:将最终的项目包复制到远程仓库中于其他开发者和项目共享 |
site生命周期
site生命周期的目的是建立和发布项目站点,maven能够基于pom.xml所包含的信息,自动生成一个友好的站点,方便团队交流和发布项目信息。主要包括4个阶段
阶段 | 描述 |
---|---|
pre-site | 执行一些需要在生成站点文档之前完成的工作 |
site | 生成项目的站点文档 |
post-site | 执行一些需要在生成站点文档之后完成的工作,并且为部署做准备 |
site-deploy | 将生成的站点文档部署到特定的服务器上 |