第七章 生命周期和插件
除了坐标、依赖和仓库之外,Maven另外两个核心概念是声明周期和插件。Maven的生命周期是抽象的,其实际行为都由插件来完成,如package阶段的任务可能有maven-jar-plugin完成。生命周期和插件两者协同工作,密不可分。 ###7.1 何为生命周期### Maven的生命周期就是为了对所有的构建过程进行抽象和统一,生命周期包含了项目的清理,初始化,编译,测试,打包,集成测试,验证和站点生成等几乎所有构建步骤,几乎所有项目的构建,能够映射到这样一个生命周期上。生命周期是抽象的,这也意味着生命周期本身不做任何实际的工作,在Maven设计中,实际的任务都是交由插件完成的,这种思想和设计模式中的模板方法非常类似,模板方法模式在父类中定义算法的整体结构,子类可以通过实现或者重写父类的方法来控制实际的行为,这样既保证了算法有足够的可扩展性,又能够严格控制算法的整体结构,如下的模板方法抽象类能够很好的体现Maven生命周期的概念: Public void build(){ initialize(); compile(); test(); packagee(); integrationTest();deploy(); } protected abstract void initialize(); protected abstract void compile();