生命周期
Maven有三套相互独立的生命周期,分别是clean、default 和 site。clean生命周期的目的是清理项目,default生命周期的目的是构建项目,而site生命周期的目的是建立项目站点。
每个生命周期包含一些阶段(phase),这些阶段是有顺序的,并且后面的阶段依赖于前面的阶段,用户和maven最直接的交互方式就是调用这些生命周期阶段。
如上图我们在mvn命令中也说了,其执行运行的阶段说明,这里再以clean生命周期为例,它包含的阶段有:pre-clean,clean和post-clean。
- 当用户调用pre-clean的时候,只有pre-clean阶段得以执行;
- 当用户调用clean的时候,pre-clean和clean阶段会得以顺序执行;
- 当用户调用post-clean的时候,pre-clean,clean和post-clean会得以顺序执行。
较之于生命周期阶段的前后依赖关系,三套生命周期本身是相互独立的,用户可以仅仅调用clean生命周期的某个阶段,或者仅仅利用调用default生命周期的某个阶段,而不会对其它生命周期产生任何影响。
例如,当用户调用clean生命周期的clean阶段的时候,不会触发default生命周期的任何阶段,反之亦然。当用户调用default生命周期的compile阶段的时候,也不会触发clean生命周期的任何阶段。
上图中我们提到过maven只定义生命周期,具体的执行交由plugin插件来完成,所以插件plugin是绑定到生命周期,承担实际功能的组件。mvn运行时,自动关联插件来运行。
下图是maven默认的各阶段对应的插件列表,展示了生命周期与插件的相互绑定关系
生命周期 | 生命周期阶段 | 插件 | 执行任务 |
---|---|---|---|
clean | pre-clean | 执行一些清理前需要完成的工作 | |
clean | maven-clean-plugin:clean | 删除项目的输出目录,即清理上一次构建生成的文件 | |
post-clean | 执行一些清理后需要完成的工作 | ||
default | process-resources | maven-resources-plugin:resources | 复制主资源文件至主输出目录 |
compile | maven-compiler-plugin:compile | 编译主代码至主输出目录 | |
process-t |