三套构建生命周期
Maven有三套独立的Lifecycle:
- clean阶段: 项目清理阶段
- default阶段: 默认阶段,大部分的编译、测试、打包和部署都在这个阶段完成
- site阶段: 发布项目网站和文档阶段
每个Lifecycle还定义了按顺序执行的Phases,即从命令行指定执行的Phase,必然会先依次执行其前面的所有的Phase:
- 如果你执行
mvn cleanMaven实际上会依次执行pre-clean和clean两个Phase - 如果执行
mvn installMaven实际上会依次执行Default阶段前面的所有的22个Phase - 如果执行
mvn clean packageMaven首先会依次执行Clean阶段的pre-clean,clean,然后再依次执行Default阶段的validate,initialize, … 一直到package等17个Phase
三套Lifecycle相互独立,所以在执行 mvn install 的时候,是不会触发任何的Clean阶段的动作的。
** Clean阶段 **
- pre-clean
- clean
- post-clean
** Default阶段 **
- validate
- initialize
- 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
- pre-integration-test
- integration-test
- post-integration-test
- verify
- install
- deploy
Site阶段
- pre-site
- site
- post-site
- site-deploy
Lifecycle和Maven Plugin
Maven的核心非常精简,除了核心的Lifecycle、Phase等过程的定义之外,所有的实际操作都是以Plugin的方式提供的。为了减少用户的配置,提高易用性,Maven在发布的时候,已经默认绑定了一些基本的plugin,可以完成大部分的编译、测试、打包和发布等操作。