03.maven生命周期

maven生命周期

maven有一个十分完善的生命周期模型(lifecycle)。运行maven的每个步骤都由maven预定义的,相比Ant而言,这种预定义使maven的使用变得简单(Ant的每个步骤都要你手工去定义)。这个模型是一种标准,在不同的项目中,maven的生命周期是相同的。一般情况下,mvn clean package 这样的命令是通用的。

maven有三套相互独立的生命周期:

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

说它们是相互独立的,是指你可以只调用clean来清理项目,仅调用site来生成项目报告。你也可以直接运行 mvn clean install site 运行所有这三套生命周期。

每套生命周期都由一组阶段(Phase)组成,我们平时在命令行输入的命令总会对应于一个特定的阶段。比如,运行mvn clean ,这里的clean是Clean生命周期的一个阶段。运行某个阶段的时候,它之前的所有阶段都会被运行,

Clean 生命周期

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

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

如上面所说,我们平常执行的mvn clean指令时,maven会先运行pre-clean,然后运行clean。如果执行 mvn post-clean,则执行顺序为pre-clean-->clean-->post-clean

Site 生命周期

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

Default 生命周期

validate 验证项目是否正确
initialize 初始化构建状态,如设置属性或创建目录。
generate-sources 生成所有包含代码
process-sources 处理源代码,例如过滤值。
generate-resources 生成资源
process-resources 复制并处理资源文件,至目标目录,准备打包。
compile 编译项目的源代码。
process-classes 对编译生成的文件做后置处理,例如Java类字节码增强。
generate-test-sources 生成所有测试所需的包含代码
process-test-sources 处理测试源代码,例如过滤值。
generate-test-resources 生成测试资源
process-test-resources 复制并处理资源文件,至目标测试目录。
test-compile 编译测试源代码。
process-test-classes 对测试代码编译生成的文件做后置处理,例如Java类字节码增强,maven 2.0.5及以后的版本加入此阶段
test 使用合适的单元测试框架运行测试。这些测试不能要求打包或部署。
prepare-package 执行所有打包之前的必须打包准备工作,maven 2.1 及以后版本加入此阶段
package 将编译的代码打包生成可发布的格式,如 JAR 。
pre-integration-test 执行集成测试之前的工作,这涉及一些例如设置需要的环境的工作
integration-test 如果必要,此阶段会把可发布的包部署到集成测试环境
post-integration-test 集成测试兵团操作,例如清理环境
verify 运行所有检查,验证包是否有效,并且符合软件质量标准
install 将包安装至本地仓库,用于其它项目依赖。
deploy 将最终的包复制到远程的仓库,以让其它开发人员与项目共享。

apache maven guides:Introduction to the Build Lifecycle

时间: 2024-11-05 14:42:17

03.maven生命周期的相关文章

Maven生命周期小记

1.Maven生命周期是为了所有的构建过程进行抽象和统一.Maven从大量的项目和构建工具中学习和反思,总结了一套高度完善.易扩展的生命周期.这个生命周期包含了项目的清理.初始化.编译.测试.打包.集成测试.验证.部署和站点生成等几乎所有构建步骤. 2.Maven三套独立的生命周期 clean生命周期,包含三个阶段 1)pre-clean执行一些清理前需要完成的工作 2)clean清理上次构建的文件 3)post-clean执行一些清理后需要完成的工作 default生命周期 validate

Maven系列学习(三)Maven生命周期和插件

Maven生命周期和插件 Maven另外的两个核心概念就是生命周期和插件,Maven的生命周期都是抽象的,其实实际行为都是由插件来完成的,生命周期和插件两者协同工作 1.生命周期 Maven的生命周期就是为了对所有的构建过程进行抽象和统一,这个生命周期包含了项目的清理,初始化,编译,测试,打包,集成测试,验证,部署和站点生成等几乎所有构建步骤,Maven的生命周期是抽象的,这意味着生命周期本身不做任何实际的工作,在Maven的设计中,实际的任务都是交给插件来完成的 一次构建(build):ini

Maven实战:Maven生命周期

前言 之前有写过一篇文章Maven实战,介绍了Maven的一些基本概念,以及对于一个初学者而言的Maven基础知识,当时在我看来掌握了这些基本是够用的. 随着工作的深入,越来越感觉对于Maven的理解不够,很多时候使用Maven出了问题都无法很快地解决,因此打算深入地从搭建Maven工程开始学习一下Maven,这篇文章就将自己的学习历程记录下来和网友朋友们分享. 从搭建最简单的Maven项目开始 LZ使用的是MyEclipse,那么就是用MyEclipse搭建一个简单的Maven项目.第一步,n

Maven生命周期(插件)

maven拥有三套相互独立的生命周期,它们分别是clean,default和site.clean生命周期的目的是清理项目,default生命周期的目的是构建项目,而site 生命周期的目的是建立项目站点. 命令行与生命周期:从命令行执行maven任务的最主要方式就是调用maven的生命周期阶段. mvn clean:该命令调用clean生命周期的clean阶段.实际执行的阶段为clean生命周期的pre-clean和clean阶段. maven的生命周期与插件相互绑定,用以完成实际的构件任务.具

(十二)Maven生命周期和插件

除了坐标.依赖以及仓库之外,Maven的另外两个核心概念是生命周期和插件.在有关Maven的日常使用中,命令行的输入往往就对应了生命周期,如mvn package就表示执行默认生命周期阶段package.Maven的生命周期是抽象的,其实际行为都由插件来完成,如package阶段的任务可能就会由maven-jar-plugin完成.生命周期和插件两者协同工作,密不可分. 1.Maven生命周期 我们在开发项目的时候,我们不断地在经历编译.测试.打包.部署等过程,maven的生命周期就是对所有这些

关于spring mvc 请求参数校验使用中的坑 。 maven 生命周期,线程池杂识

//一.使用@Valid @NotNull 启动项目请求,参数为空, // 好像没有效果.原因是只加了jar包:javax.validation:validation-api,这个包是一个规范,并没有实现 // spring 的默认实现是 org.hibernate:hibernate-validator 加上即可. // 再次请求 返回400, //看日志是校验未通过,接下来就是校验异常后处理了.使用以下代码处理 @ResponseBody @ExceptionHandler(MethodAr

Maven生命周期

Maven的生命周期是为了对所有的构建过程进行了抽象了,便于统一. clean(清理) cleanup(清理所有) 此生命周期旨在给工程做清理工作,它主要包含以下阶段: pre-clean - 执行项目清理前所需要的工作. clean - 清理上一次build项目生成的文件. post-clean - 执行完成项目清理所需的工作. default(默认) validate - 验证项目是否正确且所有必要的信息都可用. initialize - 初始化构建工作,如:设置参数,创建目录等. gene

MAVEN - 生命周期(1)

三套生命周期: MAVEN拥有三套互相独立的生命周期,分别是:clean.default和site. clean - 清理项目 default - 构建项目 site - 简历项目站点 这其中,每个生命周期包含了各自的子阶段 其中clean又包括了 pre-clean \ clean \ post-clean 完整的生命周期如图: 命令行与生命周期 mvn clean:调用clean生命周期的clean阶段,实际调用的是pre-clean\clean两个阶段 mvn test :调用defaul

笔记:Maven 生命周期与命令行详解

Maven 拥有三套相互独立的生命周期,分别是 clean.default和site,clean 生命周期的目的是清理项目,default 生命周期的目的是构建项目,而site生命周期的目的是建立项目站点,每个生命周期包含一些阶段,这些阶段是有顺序的,并且后面的阶段依赖前面的阶段,用户和Maven最直接的交互方式就是调用这些生命周期阶段. clean 生命周期:包含的阶段有 pre-clean.clean 和 post-clean pre-clean:执行一些清理前需要完成的工作 clean:清