7.1 什么是生命周期
maven的生命周期就是为了对所有的构建过程进行抽象和统一。这个生命周期包含了项目的清理、初始化、编译、测试、打包、集成测试、验证、部署和站点生成等几乎所有构建步骤。
maven的生命周期是抽象的,在maven的设计中,实际的任务(例如编译源代码等)都交由插件来完成,这种思想和设计模式中的模板方法。
7.2 生命周期详解
7.2.1 三套生命周期
maven有三套独立的生命周期,分别为clean,default,site等。clean的生命周期是清理项目,default的生命周期是构建项目,site的生命周期的目的是建立项目站点。
每个生命周期中包含一些阶段,这些阶段是有顺序的(pre-clean,clean,post-clean)。但是
7.2.2 clean生命周期
1】pre-clean 执行一些清理前需要完成的工作
2】clean清理上一次构建生成的文件
3】post-clean 执行一些清理后需要完成的工作
7.2.3 default生命周期
default生命周期定义了真正构建时所需要执行的所有步骤
1.validate
2.initialize
3.generate-sources
4.process-sources 处理项目主资源文件。一般来说是对src/mian/resources目录的内容进行变量替换等工作后,复制到项目输出的主classpath目录中。
5.generate-resources
6.process-resources
7.compile
8.process-classes
9.generate-test-sources
10.process-test-sources
11.generate-test-resources
12.process-test-resources
13.test-compile
14.process-test-classes
15.test 使用单元测试框架运行测试,测试代码不会被打包货部署
16.prepare-package
17.package
18.pre-integration-test
19.intergration-test
20.post-interation-test
21.verify
22.install 将包安装到maven本地仓库,供本地其他maven项目使用
23.deploy 讲最终包复制到远程仓库,供本地其他maven项目使用
7.2.4 site生命周期
site生命周期的目的是建立和发布站点,maven能够基于POM所包含的信息,自己自动生成一个友好的站点,方便团队交流和发布项目信息。该生命周期包含:
1.pre-site执行一些在生成项目站点之前需要完成的工作。
2.site生成项目站点文档
3.post-site执行一些在生成项目站点之后需要完成的工作
4.site-deploy 讲生成的站点发布到服务器上
7.2.5 命令行与生命周期
。。。。
7.3 插件目标
Maven的核心仅仅是定了了抽象的生命周期,具体的任务是交由插件完成的,插件以独立的构建形式存在,因此,maven的核心的分法包只有不到3MB的大小,maven会在需要的时候下载并使用插件
7.4 插件绑定
7.5 插件配置
7.5.1 命令行插件配置
用户可以再Maven,命令行中使用-D参数,并伴随一个参数键=参数值的形式,来配置插件的目标的参数
eg:maven-surefire-plugin提供了一个maven.test.skip参数,当其值为true时,就会跳过执行测试。
mvn install -Dmaven.test.skip=true
7.5.2 POM中插件的全局配置
7.5.3 POM中插件任务配置
7.6 获取插件信息
7.6.1 在线插件信息
maven的插件基本来自于Apache和codehaus。
7.6.2使用maven-help-plugin描述插件
7.7 从命令行调用插件
mvn -h来显示mvn命令帮助
7.8 插件解析机制
7.8.1插件仓库
7.8.2 插件默认的groupId为org.apache.maven.plugins
7.8.3解析插件版本
7.8.4解析插件前缀