maven 生命周期

22人阅读 评论(0) 收藏 举报
分类:

原文地址:http://www.codeweblog.com/maven-%E7%94%9F%E5%91%BD%E5%91%A8%E6%9C%9F/

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

Clean Lifecycle 在进行真正的构建之前进行一些清理工作。
Default Lifecycle 构建的核心部分,编译,测试,打包,部署等等。

Site Lifecycle 生成项目报告,站点,发布站点。

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

知道了每套生命周期的大概用途和相互关系以后,来逐个详细看一下每套生命周期,Clean和Site相对比较简单,先解释一下。

每套生命周期都由一组阶段(Phase)组成,我们平时在命令行输入的命令总会对应于一个特定的阶段。比如,运行mvn clean ,这个的clean是Clean生命周期的一个阶段。有点绕?要知道有Clean生命周期,也有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很重要的一个规则,可以大大简化命令行的输入。

下面看一下Site生命周期的各个阶段:
pre-site 执行一些需要在生成站点文档之前完成的工作
site 生成项目的站点文档
post-site 执行一些需要在生成站点文档之后完成的工作,并且为部署做准备
site-deploy 将生成的站点文档部署到特定的服务器上
这里经常用到的是site阶段和site-deploy阶段,用以生成和发布Maven站点,这可是Maven相当强大的功能,Manager比较喜欢,文档及统计数据自动生成,很好看。

最后,来看一下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 将最终的包复制到远程的仓库,以让其它开发人员与项目共享。

记住,运行任何一个阶段的时候,它前面的所有阶段都会被运行,这也就是为什么我们运行mvn install 的时候,代码会被编译,测试,打包。


查看评论

maven生命周期及依赖

maven生命周期 maven把项目构建划分为不同的生命周期,maven有三套生命周期,分别为: clear lifecycle:构建之前的清理工作。包括pre-clear(执行清理之前要做的工...
  • javawebxy
  • javawebxy
  • 2017-04-04 08:36:39
  • 646

深入理解maven及应用(一):生命周期和插件

在项目里用了快一年的maven了,最近突然发现maven项目在eclipse中build时非常慢,因为经常用clean install命令来build项目,也没有管那么多,但最近实在受不了乌龟一样的b...
  • MINEZHANGHAO
  • MINEZHANGHAO
  • 2014-07-02 09:11:41
  • 4566

Maven生命周期及其他核心概念

Maven作为一个构建工具由于遵循了约定优于配置的原则,只要编写比Ant所需少得多的脚本就能实现同样的构建。并且Maven还有很多Ant没有的高级特性,例如依赖管理等,这一切使得Maven不仅是构建工...
  • limm33
  • limm33
  • 2016-11-12 18:11:01
  • 3090

《Maven进阶》1.maven 项目生命周期与构建原理

maven是一个非常经典的和通用的项目管理工具,虽然现在热炒gradle将作为下一代 项目管理工具来取代maven,但是 由于maven强大和健全的功能,maven还有很强的生命力。 本文将介绍m...
  • u010349169
  • u010349169
  • 2016-01-15 14:19:34
  • 6391

Maven之——三套生命周期

摘要: 主要是Maven生命周期的概念、三套生命周期分别包含的各个阶段、以及各个阶段定义的目标。...
  • chenghuaying
  • chenghuaying
  • 2014-11-08 11:44:52
  • 4112

IDEA--maven的使用和maven的生命周期

1、profile 真实项目中,每一个项目都会有多套环境,包括开发环境,测试环境,灰度机环境以及最终的生产环境,每一套环境对应着不同的配置参数,比如JDBC连接信息肯定会有所差别,如果发布到某一...
  • gghh2015
  • gghh2015
  • 2018-03-07 23:05:25
  • 99

maven常用插件记录

先了解下生命周期:maven生命周期详解mvn install 是将你打好的jar包安装到你的本地库中,一般没有设置过是在 用户目录下的 .m2\下面。mvn package 只是将你的代码打包到输出...
  • chang_li
  • chang_li
  • 2016-09-17 15:53:02
  • 415

Maven Default生命周期

命令 说明 validate generate-sources process-sources generate-resources process-re...
  • Bleachswh
  • Bleachswh
  • 2016-11-21 09:49:48
  • 623

Maven学习(四):生命周期与maven插件

(一)简介 Maven强大的一个重要的原因是它有一个十分完善的生命周期模型(lifecycle),这个生命周期可以从两方面来理解: 1、顾名思义,运行Maven的每个步骤都由它来定义的,这种预定义的默...
  • u012228718
  • u012228718
  • 2015-01-14 21:48:28
  • 1090
    个人资料
    持之以恒
    等级:
    访问量: 5640
    积分: 369
    排名: 18万+
    文章分类
    最新评论