Maven实战学习笔记2
2017-07-16 15:17
330 查看
Chap 07
生命周期和插件
1.除了坐标、依赖和仓库,Maven另外的核心概念是生命周期和插件。命令输入的命令对应着生命周期,生命周期是抽象的,其行为通过插件来完成。
2.Maven有三种独立的生命周期:clean清理、default编构建和site建立和发布项目站点。每个生命周期分为不同的阶段,例如clean分为pre-clean、clean和post-clean。阶段是有顺序的,比如执行clean生命周期会调用pre-clean和clean。
3.clean生命周期:
a) pre-clean:清理前工作
b) clean:清理工作
c) post-clean:清理后工作
4.default生命周期:定义构建所需的所有步骤
a) Validate:验证
b) Initialize:初始化
c) generate-sources:代码生成
d) process-source:处理项目主资源文件。对src/main/resource内容进行变量替换,赋值到项目输出的主claspath中。
e) generate-resources:资源生成
f) process-resources:资源处理
g) Compile:编译src/main/java下的java文件至主classpath目录中
h) process-classes:处理编译后的classes
i) generate-test-sources、process-test-sources、generate-test-resources-process-test-resources、test-compileprocess-test-classes类似
j) test:使用单元测试框架运行测试,测试代码不会打包或者部署。
k) prepare-package、package:打包相关
l) pre-integration-test、integration-test、post-integration-test:集成测试相关
m) verify
n) Install:安装到本地maven库
o) Deploy:部署到远程仓库
5.site生命周期:建立和发布项目站点
a) pre-site
b) Site:生成项目站点文档
c) post-site
d) site-deploy:将生成的项目站点发布到服务器上
6.命令行与生命周期:通过命令行调用maven生命周期,生命周期的不同阶段是前后依赖的。
a) Mvn clean:调用pre-clean和clean阶段。
b) Mvn test:调用default生命周期的的test阶段。包括test之前的所有阶段。
c) Mvn clean install:clean生命周期的clean阶段和default生命周期的install阶段。
7.生命周期是通过插件完成的,一个插件可能包含多个目标,可以通过插件别名:目标的方式调用特定的目标,例如:compiler:compile,调用maven-compiler-plugin的compile目标。
8.生命周期需要与插件的目标进行绑定:
a) 内置绑定:
i. Clean生命周期:maven-clean-plugin:clean与生命周期中的clean阶段绑定。
ii. Site生命周期:maven-site-plugin:site与site绑定,maven-site-plugin:deploy与site-deploy绑定。
iii. Default生命周期:与打包类型(pom.xml中的packaging)有关,jar类型的绑定关系如下。
b) 自定义绑定:如制作源码jar,可以自定义绑定到default生命周期的某个阶段。可以使用maven-help-plugin插件(mvn
help:describe -Dplugin=org.apache.maven.plugins:xxx)查看具体插件默认绑定的阶段,例如:
9.插件配置:
a) 命令行配置:-D参数键=参数值的形式,如:mvn
install -Dmaven.test.skip=true跳过测试阶段。
b) Pom.xml中配置:
i. 全局配置:plugin标签下configuration定义插件的通用配置,如maven-compile-plugin配置java版本信息。
ii. 任务配置:通过plugin下的execution配置maven插件目标与生命周期的对应关系,此时configuration标签位于execution目录下,表示为认为配置而不是全局配置。
10.命令行执行插件goal:
a) 插件goal能与生命周期中的不同阶段绑定。
b) 提供插件目标前缀简化插件执行:如下命令效果一样:
11.pluginRepositories和pluginRespository配置插件仓库,默认groupId位org.apache.maven.plugins可以省略
生命周期和插件
1.除了坐标、依赖和仓库,Maven另外的核心概念是生命周期和插件。命令输入的命令对应着生命周期,生命周期是抽象的,其行为通过插件来完成。
2.Maven有三种独立的生命周期:clean清理、default编构建和site建立和发布项目站点。每个生命周期分为不同的阶段,例如clean分为pre-clean、clean和post-clean。阶段是有顺序的,比如执行clean生命周期会调用pre-clean和clean。
3.clean生命周期:
a) pre-clean:清理前工作
b) clean:清理工作
c) post-clean:清理后工作
4.default生命周期:定义构建所需的所有步骤
a) Validate:验证
b) Initialize:初始化
c) generate-sources:代码生成
d) process-source:处理项目主资源文件。对src/main/resource内容进行变量替换,赋值到项目输出的主claspath中。
e) generate-resources:资源生成
f) process-resources:资源处理
g) Compile:编译src/main/java下的java文件至主classpath目录中
h) process-classes:处理编译后的classes
i) generate-test-sources、process-test-sources、generate-test-resources-process-test-resources、test-compileprocess-test-classes类似
j) test:使用单元测试框架运行测试,测试代码不会打包或者部署。
k) prepare-package、package:打包相关
l) pre-integration-test、integration-test、post-integration-test:集成测试相关
m) verify
n) Install:安装到本地maven库
o) Deploy:部署到远程仓库
5.site生命周期:建立和发布项目站点
a) pre-site
b) Site:生成项目站点文档
c) post-site
d) site-deploy:将生成的项目站点发布到服务器上
6.命令行与生命周期:通过命令行调用maven生命周期,生命周期的不同阶段是前后依赖的。
a) Mvn clean:调用pre-clean和clean阶段。
b) Mvn test:调用default生命周期的的test阶段。包括test之前的所有阶段。
c) Mvn clean install:clean生命周期的clean阶段和default生命周期的install阶段。
7.生命周期是通过插件完成的,一个插件可能包含多个目标,可以通过插件别名:目标的方式调用特定的目标,例如:compiler:compile,调用maven-compiler-plugin的compile目标。
8.生命周期需要与插件的目标进行绑定:
a) 内置绑定:
i. Clean生命周期:maven-clean-plugin:clean与生命周期中的clean阶段绑定。
ii. Site生命周期:maven-site-plugin:site与site绑定,maven-site-plugin:deploy与site-deploy绑定。
iii. Default生命周期:与打包类型(pom.xml中的packaging)有关,jar类型的绑定关系如下。
生命周期阶段 | 插件目标 | 执行任务 |
process-resources | maven-resources-plugin:resources | 复制主资源文件至主输出目录 |
compile | maven-compile-plugin:compile | 编译主代码至主输出目录 |
process-test-resources | maven-resources-plugin:testRresources | 复制测试资源文件至测试输出目录 |
test-compile | maven-compiler-plugin:testCompile | 编译测试代码至测试输出目录 |
test | maven-surefire-plugin:test | 执行测试用例 |
package | maven-jar-plugin:jar | 创建项目jar包 |
install | maven-install-plugin:install | 将项目输出构件安装到本地仓库 |
deploy | maven-deploy-plugin:deploy | 将项目输出构件部署到远程仓库 |
help:describe -Dplugin=org.apache.maven.plugins:xxx)查看具体插件默认绑定的阶段,例如:
mvn help:describe -Dplugin=org.apache.maven.plugins:maven-source-plugin |
a) 命令行配置:-D参数键=参数值的形式,如:mvn
install -Dmaven.test.skip=true跳过测试阶段。
b) Pom.xml中配置:
i. 全局配置:plugin标签下configuration定义插件的通用配置,如maven-compile-plugin配置java版本信息。
ii. 任务配置:通过plugin下的execution配置maven插件目标与生命周期的对应关系,此时configuration标签位于execution目录下,表示为认为配置而不是全局配置。
10.命令行执行插件goal:
a) 插件goal能与生命周期中的不同阶段绑定。
b) 提供插件目标前缀简化插件执行:如下命令效果一样:
Mvn help:describe -Dplugin=compiler #help为maven-help-plugin的目标前缀 |
Mvn org.apache.maven.plugins:maven-help-plugin:2.1:describe -Dplugin=compiler #groupId:org.apache.maven.plugins,artifactId:maven-help-plugin,version:2.1,goal:describe,参数通过-D传递 |
相关文章推荐
- [Maven实战]-学习笔记(二):Maven安装及配置
- Maven实战学习笔记、7.生命周期和插件
- 学习笔记-[Maven实战]-第二章:Maven安装和配置
- 学习笔记-[Maven实战]-第三章:Maven使用入门(1)
- 《Maven 实战》学习笔记
- 学习笔记-[Maven实战]-第三章:Maven使用入门(2)
- 学习笔记-[Maven实战]-第三章:Maven使用入门(3)
- Maven的安装学习笔记
- Maven学习笔记
- Maven学习笔记(一)
- Maven学习笔记之四:Maven使用入门(编写POM)
- JavaSE--学习实战完全笔记--增强版的线程创建方式--实现Callable接口
- maven 学习笔记
- “实战OO”学习笔记
- 学习实战全笔记--JavaSE--Annotation(注释)--5种基本注释的用法示例(JDK8)
- 学习笔记Maven:项目拆分
- 大数据Spark企业级实战版【学习笔记】----RDD:分布式函数式编程
- CSS学习笔记--Div+Css布局实战(入门)
- Java Web实战02--Maven学习以及如何建立动态网页工程
- Maven学习笔记(六)----maven私服搭建注意点