maven相关知识学习及总结

maven相关

maven生命周期

如果没有maven,开发人员每次开发代码需要手工进行代码清理,构建,测试,部署等步骤,这些重复劳动耗费开发人员大量时间。apache将项目的开发过程各个阶段抽象成生命周期,各个阶段的任务/动作实际上是由maven插件执行的。
实际上,maven插件是与目标(goal)绑定的,maven插件执行的是一个个目标。

目标表示一个特定的、对构建和管理工程有帮助的任务。它可能绑定了 0 个或多个构建阶段。没有绑定任何构建阶段的目标可以在构建生命周期之外被直接调用执行。

clean

其中clean阶段包含:

生命周期-抽象概念阶段动作目标-与插件绑定
0pre-clean初始化构建状态,例如设置属性。
1clean清理target下的文件clean:clean
2post-clean清理后一些动作。

你可以在命令行中输入mvn help:describe -Dplugin=xxx 来查看各个插件绑定的goal
如查看maven-plugin-clean的: mvn help:describe -Dplugin=clean
30x30

标准的maven生命周期分别为clean(处理项目的清理)、default(处理项目的部署)、site(处理项目的文档生成)。

default

default阶段包含
由于不同的打包方式,阶段绑定的目标是不同的,下面以打包成ejb/ ejb3/ jar/ par/ rar/war为例

生命周期-抽象概念阶段动作目标-与插件绑定
1validate检查工程配置是否正确,完成构建过程的所有必要信息是否能够获取到
2initialize初始化构建状态,例如设置属性。
3generate-sources生成编译阶段需要包含的任何源码文件。
4process-sources处理源代码,例如,过滤任何值(filter any value)。
5generate-resources生成工程包中需要包含的资源文件。
6process-resources拷贝和处理资源文件到目的目录中,为打包阶段做准备。resources:resources
7compile编译工程源码。compiler:compile
8process-classes处理编译生成的文件,例如 Java Class 字节码的加强和优化。
9generate-test-sources生成编译阶段需要包含的任何测试源代码。
10process-test-sources处理测试源代码,例如,过滤任何值(filter any values)。resources:testResources
11test-compile编译测试源代码到测试目的目录。compiler:testCompile
12process-test-classes处理测试代码文件编译后生成的文件。
13test使用适当的单元测试框架(例如JUnit)运行测试。surefire:test
14prepare-package在真正打包之前,为准备打包执行任何必要的操作。
15package获取编译后的代码,并按照可发布的格式进行打包,例如 JAR、WAR 或者 EAR 文j件。ejb:ejb 或 ejb3:ejb3 或 jar:jar 或 par:par 或 rar:rar 或 war:war
16pre-integration-test在集成测试执行之前,执行所需的操作。例如,设置所需的环境变量。
17integration-test处理和部署必须的工程包到集成测试能够运行的环境中。
18post-integration-test在集成测试被执行后执行必要的操作。例如,清理环境。
19verify运行检查操作来验证工程包是有效的,并满足质量要求。
20install安装工程包到本地仓库中,该仓库可以作为本地其他工程的依赖。install:install
21deploy拷贝最终的工程包到远程仓库中,以共享给其他开发人员和工程。deploy:deploy
site
生命周期-抽象概念阶段动作目标-与插件绑定
1pre-site在实际项目站点生成之前执行所需的过程pre-site
2site生成项目的站点文档site:site
3post-site执行完成站点生成所需的流程,并准备站点部署
4site-deploy将生成的站点文档部署到指定的Web服务器site:deploy

运行方式

运行阶段

mvn clean

最为常用的命令方式,运行clean 生命周期的pre-clean, clean阶段,实际执行的是maven-clean-plugin插件的clean目标。

mvn compile

compile阶段属于default lifecycle,会运行default从validate至complie的所有阶段,即default周期的第1-7阶段, 执行的是dependency插件的copy-dependencies目标

运行目标

mvn dependency:copy-dependencies

以上命令执行了dependency插件的copy-dependencies目标。

同时运行

mvn clean dependency:copy-dependencies package

以上命令执行了clean周期的pre-clean和clean阶段,dependency插件的copy-dependencies目标,default周期package阶段及package之前的所有阶段。

参考:
maven生命周期
maven介绍
Maven的生命周期,阶段,插件,目标的关系

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值