前言
- 本文仅仅是为了记录学习【maven实战】知识点以及相关拓展,所以有些知识点也仅仅是一笔带过,所以需要了解的朋友可以去阅读【maven实战】这本书。
生命周期和插件
- 生命周期为了对所有的构建过程进行抽象和统一。
- 过程:初始化-编译-测试-打包-集成测试-部署
三套生命周期
- Clean Lifecycle
- 在进行真正的构建之前进行一些清理工作。
pre-clean 执行一些需要在clean之前完成的工作
clean 移除所有上一次构建生成的文件
post-clean 执行一些需要在clean之后立刻完成的工作
- Default Lifecycle
- 构建的核心部分,编译,测试,打包,部署等等。
validate
generate-sources
process-sources
generate-resources
process-resources 复制并处理资源文件,至目标目录,准备打包。
compile 编译项目的源代码。
process-classes
generate-test-sources
process-test-sources
generate-test-resources
process-test-resources 复制并处理资源文件,至目标测试目录。
test-compile 编译测试源代码。
process-test-classes
test 使用合适的单元测试框架运行测试。这些测试代码不会被打包或部署。
prepare-package
package 接受编译好的代码,打包成可发布的格式,如 JAR 。
pre-integration-test
integration-test
post-integration-test
verify
install 将包安装至本地仓库,以让其它项目依赖。
deploy 将最终的包复制到远程的仓库,以让其它开发人员与项目共享。
- Site Lifecycle
- 生成项目报告,站点,发布站点。
pre-site 执行一些需要在生成站点文档之前完成的工作
site 生成项目的站点文档
post-site 执行一些需要在生成站点文档之后完成的工作,并且为部署做准备
site-deploy 将生成的站点文档部署到特定的服务器上
命令行
- mvn clean:该命令调用 clean 生命周期的 clean 阶段,实际执行的阶段为 pre-clean 和 clean 。
- mvn test:该命令调用 default 生命周期的 test阶段,实际执行的阶段从 validate 到 test 阶段。
- mvn clean install:该命令调用 clean 和 default 生命周期,实际执行的为 clean 生命周期的 pre-clean 和 clean 阶段;default 生命周期的 validate 到 install 阶段
- mvn clean deploy site-deploy:调用【clean LifeStyle】的clean阶段,【default lifeStyle】的deploy阶段,【site LifeStyle】的site-deploy阶段。实际执行的clean生命周期的pre-clean.clean阶段,default生命周期的所有阶段,site生命周期的所有阶段。
- 这三套生命周期相互独立