Maven的生命周期是抽象的,这意味着生命周期本身不做任何实际的工作,在Maven设计中,实际的任务(如编译源代码)都交由 插件 来完成。跟设计模式中的 模板方法 非常相似。
模拟生命周期的模板方法抽象类
public abstract class AbstractBuild{
public void build(){
initialize();
compile();
test();
packagee();
integrationTest();
deploy();
}
protected abstract void initialize();
protected abstract void complie();
protected abstract void test();
protected abstract void packagee();
protected abstract void integrationTest();
protected abstract void deploy();
}
生命周期:清理,初始化,编译,测试,打包,集成测试,验证,部署和站点 所有 构建步骤。
maven 针对 编译 的插件 ,maven-complier-plugin
maven 针对 测试 的插件,maven-surefire-plugin
======
其实maven 拥有三套相互独立的生命周期:
clean 清理项目
default 构建项目
site 建立项目站点