maven系列(3)maven生命周期的介绍

1. 概述

Maven有三套相互独立的生命周期,请注意这里说的是“三套”,而且“相互独立”,初学者容易将Maven的生命周期看成一个整体,其实不然。这三套生命周期分别是:

Clean Lifecycle 在进行真正的构建之前进行一些清理工作。
Default Lifecycle 构建的核心部分,编译,测试,打包,部署等等。
Site Lifecycle 生成项目报告,站点,发布站点。

再次强调一下它们是相互独立的,你可以仅仅调用clean来清理工作目录,仅仅调用site来生成站点。当然你也可以直接运行 mvn clean install site 运行所有这三套生命周期。

注意:

在每个生命周期的各阶段都是按顺序执行的,也就是说,如果执行了步骤C,那么步骤A和步骤B都会自动执行。【假设步骤A和步骤B在步骤C之前】

2. clean

Clean生命周期一共包含了三个阶段:

pre-clean  执行一些需要在clean之前完成的工作
clean  移除所有上一次构建生成的文件
post-clean  执行一些需要在clean之后立刻完成的工作

mvn clean 中的clean就是上面的clean,在一个生命周期中,运行某个阶段的时候,它之前的所有阶段都会被运行,也就是说,mvn clean 等同于 mvn pre-clean clean ,如果我们运行 mvn post-clean ,那么 pre-clean,clean 都会被运行。这是Maven很重要的一个规则,可以大大简化命令行的输入。

3. default

Maven的最重要的Default生命周期,绝大部分工作都发生在这个生命周期中,只解释一些比较重要和常用的阶段:

validate
generate-sources
process-sources
generate-resources
process-resources     并处理资源文件,至目标目录,准备打包。
compile     编译项目的源代码。
process-classes
generate-test-sources 
process-test-sources 
generate-test-resources
process-test-resources     并处理资源文件,至目标测试目录。
test-compile     编译测试源代码。
process-test-classes
test     使用合适的单元测试框架运行测试。这些测试代码不会被打包或部署。
prepare-package
package     接受编译好的代码,打包成可发布的格式,如 JAR 。
pre-integration-test
integration-test
post-integration-test
verify
install     将包安装至本地仓库,以让其它项目依赖。
deploy     将最终的包到远程的仓库,以让其它开发人员与项目共享。

4. site

Site生命周期的各个阶段:

pre-site     执行一些需要在生成站点文档之前完成的工作
site    生成项目的站点文档
post-site     执行一些需要在生成站点文档之后完成的工作,并且为部署做准备
site-deploy     将生成的站点文档部署到特定的服务器上

5. 参考:

  1. Maven生命周期详解
  2. Introduction to the Build Lifecycle
更多相关文章
  • 本文基于Spring 注解,让Spring跑起来.本文使用Mysql数据库.         (1) 导入相关包,包结构如下图所示:         (2) 修改src/applicationContext.xml文件,结果如下所示:   [java] view plaincopy   <?x ...
  • 1.socket是网络编程的说法,既然是网络编程那么就有服务器端和客户端,首先创建两个类,TCPSocket.java用于当做服务器端,TCPClient.java用于当做客户端, 2.首先编写服务器端,在Java中提供java.net.ServerSocket类来当做网络服务器,构造函数需要一个网 ...
  • 本机ip.127.0.0.1和0.0.0.0区别   网络java IP地址的记法: IP地址由四个字节构成,为了方便阅读和书写,每个字节用0-255的数字表示,字节之间用’.'分割,如: 10.10.152.235 有时候我们会看到这样的IP: 10.10.152.235/24, 后面的/24表示 ...
  • 数据库环境:SQL SERVER 2008R2 今天在数据库中抓出一条比较耗费资源的SQL,只返回904条数据,居然跑了40多分钟.SQL及对应的数据量如下图: SELECT saft04.cur_year , LEFT(saft04.dept_id, 4) sdept_id , saft04.vd ...
  • TableView不显示没内容的Cell怎么办? 类似这种,我不想让下面那些空的显示. 很简单.[objc] view plaincopy在CODE上查看代码片派生到我的代码片self.tableView.tableFooterView = [[UIView alloc] init];试过的都说好. ...
  • 1.停用oracle服务:进入计算机管理,在服务中,找到oracle开头的所有服务,右击选择停止 2.在开始菜单中,找到Universal Installer,运行Oracle Universal Installer,单击卸载产品 3.在产品清单窗口中,单击全部展开,除了OraDb11g_home1 ...
一周排行
  • 语言多元化是PayPal编程文化中一个重要的组成部分.在C++和Java长期流行的同时,更多的团队选择了JvaScript和Scala.同时,Braintree的收购也引入了一个久经世故的Ruby社区. Python ...
  • 跳马问题:      如图,在半张中国象棋的棋盘上(8X4),一只马从跳到,只允许往右跳,不允许往左跳,问能有多少种跳的方案. 分析:此题可以采取递归的方法.站在固定的一个点上,最多可以有4个方向可以跳,设所在点坐标 ...
  • 本文所涉及的方法只能在已授权的机器上做测试.       首先建议一下到网上查查meterpreter的用法在看这篇文章,理解为什么要使用msf来提权(因为msf里边有个meterpreter很强大^_^) Meta ...
  • 感觉分析的非常好,所以决定翻译出来,希望和大家多多交流O(∩_∩)O~ 转载请注明出处:http://blog.csdn.net/u010484477     O(∩_∩)O谢谢 keyword:病毒.linux,信 ...
  • 实验拓扑图 需求描述 1,添加三个FTP虚拟用户devadm.sales.saleadm 2,设置用户访问及文件权限控制: 开放匿名访问,任何用户可以从/var/ftp/soft/目录下载资料 用户devadm可以对 ...
  • 什么?路由器也要搭配家居装修风格?没错,路由器领域也刮起了一阵“时尚”风! 装修新居或者办公室时,大多数人没有考虑过路由器这个看似不起眼的部分,等到装修结束才发现路由器摆在那儿实在突兀.也有人选择层层设防,巧妙放置让 ...
  • 这篇文章向您展示了如何使用 IBM®Rational®RequisitePro 和 IBM®Rational®Software Modeler 内置的可跟踪性能,用绘图的方式来显示可跟踪性,从需求到模型,到代码. j ...
  • 什么是SPF? 这里的SPF不是防晒指数,而是指Sender Policy Framework.翻译过来就是发信者策略架构,比较拗口,通常都直接称为SPF.SPF是跟DNS相关的一项技术,它的内容写在DNS的txt类 ...
  • Problem Description Given two sequences of numbers : a[1], a[2], ...... , a[N], and b[1], b[2], ...... , b[M ...
  • 详情参考另一篇文章: http://blog.csdn.net/yiyaaixuexi/article/details/8970734#comments