1. 构建声明周期
Maven中有三种标准的生命周期:
- 清理(clean):
- 默认或者构建(default):
- 站点(site):
1.1 清理声明周期(clean)
运行mvn clean将调用清理声明周期, 它包含了三个生命周期阶段: - pre-clean
- clean
- post-clean
1.2 默认生命周期(default)
它是一个软件应用程序构建过程的总体模型, 它包括以下阶段: - 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
- test : 运行单元测试代码, 这些代码不应该被打包或者发布.
- prepare-package
- package : 将编译好的代码打包成可分发的格式, 如JAR、WAR、EAR.
- pre-integration-test
- integration-test
- post-integration-test
- verify : 执行所有检查, 验证包是否符合质量规范.
- install : 安装package到本地仓库, 以备本地的其他项目作为依赖使用.
- deploy : 复制最终包到远程仓库, 共享给其他开发人员和项目.
1.3 站点声明周期(site)
项目文档和站点生成有一个专门的声明周期mvn site, 它包含了四个阶段: - pre-site
- site
- post-site
- site-deploy
1.4 打包相关声明周期
绑定到每个阶段的特定目标默认根据项目的打包类型设置.常见打包类型有: - JAR : Java Archive
- WAR : Web Archive
- pom : 最简单的打包类型, 它生成的构建只是它本身, 没有代码需要测试或者编译, 也没有资源需要处理.
- SAR
- EAR : Enterprise Archive
- EJB
- NAR
- SWF
- SWC
- …
为了使用自定义的打包类型, 你需要两样东西: 1. 一个定义了定制打包类型生命周期的插件; 2. 一个包含改插件的仓库.