您的位置:首页 > 其它

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类型的绑定关系如下。
生命周期阶段
插件目标
执行任务
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
将项目输出构件部署到远程仓库
b) 自定义绑定:如制作源码jar,可以自定义绑定到default生命周期的某个阶段。可以使用maven-help-plugin插件(mvn
help:describe  -Dplugin=org.apache.maven.plugins:xxx)查看具体插件默认绑定的阶段,例如:
mvn help:describe -Dplugin=org.apache.maven.plugins:maven-source-plugin
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) 提供插件目标前缀简化插件执行:如下命令效果一样:
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传递
11.pluginRepositories和pluginRespository配置插件仓库,默认groupId位org.apache.maven.plugins可以省略
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: