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 ...
一周排行
  • 美国司法部19日宣布以所谓网络窃密为由起诉5名中国军官,记者就此采访了中国国家互联网信息办公室发言人.这位发言人向记者公布了美国攻击中国网络的最新数据,他说,美国才是当今世界上最大的网络窃密者,也是中国网络的头号攻击 ...
  • 系列文章 [Head First设计模式]山西面馆中的设计模式——装饰者模式 [Head First设计模式]山西面馆中的设计模式——观察者模式 [Head First设计模式]山西面馆中的设计模式——建造者模式 [ ...
  • 1003: [ZJOI2006]物流运输trans Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 4242  Solved: 1765[Submit][Status] ...
  • 在VMware/Hyper-V里克隆出来的CentOS Linux..ifconfig...没有看到eth0..然后重启网卡又报下面错误. 故障现象: service network restart Shutting ...
  • mysql中取得汉字字段的各汉字首字母   SET GLOBAL log_bin_trust_function_creators = 1; SET FOREIGN_KEY_CHECKS=0; -- - -- Func ...
  •       Smarty是一个使用PHP写出来的模板引擎,是目前业界最著名的PHP模板引擎之一.它分离了逻辑代码和外在的内容,提供了一种易于管理和使用的方法,用来将原本与HTML代码混杂在一起PHP代码逻辑分离.简单 ...
  • 易网科技讯 12月10日消息,据路透社报道,意法半导体于当地时间周一宣布,作为公司新战略计划的一部分,该公司将从合资芯片制造商意法-爱立信中撤资.意法半导体并没有透露更多细节,但该公司方面表示已经开始协商撤资细节,整 ...
  • 接上一篇,由于VS的项目和SubversionEdge是通过固定的IP地址绑定在一起的,所以这就有个问题:如果由于种种原因,IP地址换了,那么绑定就失效了. 此时,VS项目的各种变更无法提交到SubversionEd ...
  • 首先下载下面三个文件:MySQL-client-5.6..el6.x86_64.rpm MySQL-devel-5.6..el6.x86_64.rpm MySQL-server-5.6..el ...
  • int setsockopt (  SOCKET s,                   int level,                  int optname,                const ...