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 ...
一周排行
  • 早上我睡过了,打的冲到公司,还好,没过0.过了的话,就要扣50元了.讽刺的是,这条规矩还是我提出来的,作法自缚.呸,还敢拿商鞅来做比喻! 什么东西. 今天主要的功德是完成了歌德巴赫·邱哥的设想:多条记录更新时, ...
  • 易网科技讯 6月10日消息,据国外媒体报道,在3年前被私募股权公司以22.5亿美元收购之后,全球最大域名服务商GoDaddy今天提交IPO申请.招股书显示,该公司拟筹资1亿美元,但据知情人士透露,该数字只是占位金额, ...
  • 浅拷贝:给对象拷贝一份新的对象引用地址:(只是给一个对象多起了个名字,所以,当改变拷贝的某个属性的时候,原对象的对应属性亦会改变).浅拷贝的定义—— 只对值类型(或string)类型分配新的内存地址:引用类型.以及引 ...
  • tcp,udp的校验和很弱,简单点看就是全部加起来取反,连顺序错误的问题都不能防止,位数也不多,16位.岂不是有1/65536的概率出错也检测不出来? 注意以太网那层是crc校验,两个合在一起,出错没检测出来的概率大 ...
  • 输入命令:cd /home/usr后和刚刚进入终端一样,其实已经进入了usr中,终端默认用usr用户登录,输入ls就可以查看usr目录下的文件
  • 首先你正确安装了SQLite的数据库驱动程序(sqliteodbc.exe) 1.在桌面上新建一个空的文本文件SQLite.txt,重命名为SQLite.udl: 注1.1:SQLite.udl也可以通过别的方式得到 ...
  • 前言 这个数据库技术栈是我写的“爆栈三部曲”的最后一部 ;-)   最近我写过  .NET技术大系概览 (迄今为止最全的.NET技术栈) ,相信很多网友感叹掌握的.NET技术远没有这个技术栈里面所描述的多. 然后我还 ...
  • 思路: 1.窗体控件:lstaqgl [Listview控件名称]  imageList1[ImageList控件] 2.  图片路径添加到—imageList1——Listview显示图片从 imageList1获 ...
  •         上篇博客说了一下总结struts防止页面提交的背景和struts1防止页面重复提交的解决方案,这篇博客介绍struts2防止页面提交的解决方案.         首先原理是一样的,都是通过产生令牌到页 ...
  • 本文步骤是以VisualSVN Server作为SVN服务器,其他服务器可能有所不同 第一步:找到代码仓库Repositorys 1.找到VisualSVN Server安装目录下,conf文件夹下的http.con ...