maven的生命周期和插件

258 阅读2分钟

maven的生命周期和插件的关系

生命周期是抽象的,插件是具体的。生命周期是直接提供给用户操作的,但是插件对用户是透明的。Maven的生命周期都是抽象 
的,其实际行为都是由插件来完成的。Maven的生命周期是为了对所有的构建过程进行抽象和统一。Maven的生命周期大概包含了
清理、初始化、编译、测试、打包、集成测试、验证、部署和站点生成等几乎所有构建步骤。  

每个生命周期包含一些列的阶段(phase)。这些phase就相当于maven提供的的统一接口。然后这些phase的实现由maven的插  
件来完成。每个阶段的phase会挂一个火多个goal。goal是maven里定义的最小任务单元。  

lifecycle是总任务,phase是总任务分出来的一个个子任务,但是这些子任务是被规格化的,它可以同时被多个lifecycle所包 
含 一个lifecycle可以包含任意个phase,phase的执行是按照顺序来的,一个phase可以绑定很多歌goal,至少为一个,没有  
goal的phase是没有意义的。  

goal是执行任务的最小单元,它可以绑定到任意phase上,一个phase有一个或多个goal,goal的执行也是按照顺序来的,一个  
phase被执行的时候,绑定到phase的goal会按照绑定的实际顺序执行。不管phase绑定了多少个goal,你自己定义的goal都可  
以继续绑定到phase上。

maven的三大生命周期与其对应的phase阶段

maven总共包含胆大生命周期:  
1.clean lifecycle:清理生命周期,用于清理项目。
2.default lifecycle:默认生命周期,用于编译、打包、测试、部署等。
3.site lifecycle:站点生成文档,用于构建站点文档。
生命周期(lifecycle) 阶段(phase) 描述(describe)
clean lifecycle pre-clean 预清理
clean lifecycle clean 清理