`

Maven生命周期和阶段详解

阅读更多

一直想系统全面的记录maven的生命周期,今天工作碰到maven配置疑惑,一生气,看了官网的介绍,现记录以便日后回溯,自己翻译的,如有误差,希望帮我指出,这里只讲jar,pom,war,maven-plugin

maven 生命周期
maven 有三个内置的build生命周期:default, clean 、site

clean阶段:处理项目的清理工作
default阶段:处理项目的deploy
site阶段:处理网站站点的创建

 

一个build的生命周期是由一些列的阶段(phases) 组成

每一个生命周期(default\clean\site),由一系列阶段组成,每一个阶段phases代表了生命周期的一个步骤

接下来讲内置三大生命周期及其阶段关系:

clean生命周期由一下几个阶段组成:

pre-clean  : 在项目实际进行clean之前做的一些预处理工作
clean:   移除所有上一次build过程生成的所有文件
post-clean :完成最终项目clean工作的收尾工作

 default生命周期由以下几个阶段组成:

validate :验证这个项目是否正确,所有必需资源是否可用
initialize :初始化编译的状态,例如:设置一些properties属性,或者创建一些目录
generate-sources :生成所有在编译阶段需要的源代码
process-sources :处理源代码,例如:替换值(filter any values)
generate-resources :生成这个项目包所有需要包含的资源文件
process-resources :复制并处理资源文件到目标目录,为packaging 打包阶段做好准备
compile : 编译项目的源代码
process-classes :后置处理编译阶段生成的文件,例如:做java字节码的加强操作
generate-test-sources : 生成编译阶段需要的test源代码
process-test-sources :处理test源代码,例如:替换值(filter any values)
generate-test-resources :生成test测试需要的资源文件
process-test-resources :复制并处理资源文件到test测试目标目录
test-compile : 编译项目的测试代码到指定test目标目录
process-test-classes : 后置处理test编译阶段生成的文件,例如:做java字节码的加强操作
test : 使用合适的单元测试框架,运行所有测试例子,这些测试用例不应该要求这些代码被打包或者部署才能执行
prepare-package : 处理任何需要在正式打包之前要完成的必须的准备工作。这一步的通常结果是解压,处理包版本等
package :打包编译后的代码成可发包格式,例如:jar,war等
pre-integration-test :完成一些在集成测试之前需要做的预处理操作,这通常包括建立需要的环境。
integration-test :处理并部署(deploy)包到集成测试可以运行的环境中
post-integration-test :处理一些集成测试之后的事情,通常包括一些环境的清理工作
verify :做一些对包的验证操作,去检测这个包是一个合法的符合标准的包。
install :将包安装到本地仓库,提供给作为其他项目使用,例如:包的本地依赖
deploy :最终的结果是部署到集成环境或者正式环境,复制这个最终版本到远程仓库并分享给其他项目或者开发者使用

 site生命周期由以下几个阶段组成:

pre-site : 执行一些实际站点生成之前的预处理操作
site :生成项目的站点文档
post-site :执行一些后置操并完成最终生成站点操作,并为最后站点发布做好准备
site-deploy :部署这个生成好的站点文档到指定的web服务器

goal 和liftcycle phase关系

内置的生命周期绑定:
一些阶段有一些目标(goal)默认和他们是绑定在一起的。并且,对于默认的生命周期,这个绑定依赖pom 文件里面的packaging 的值。

常见的目标绑定编译阶段(goal-to-build-phase bindings)

clean生命周期和目标的绑定关系

phase   goal
clean  clean:clean

 default生命周期和目标绑定关系:

 当packaging值是jar /  rar / war

phase               goal
process-resources       resources:resources
compile                 compiler:compile
process-test-resources  resources:testResources
test-compile 	        compiler:testCompile
test 	                surefire:test
package 	            jar:jar or rar:rar or war:war
install 	            install:install
deploy 	                deploy:deploy

 

当packaging值是maven-plugin

phase       			goal
generate-resources 		plugin:descriptor
process-resources 		resources:resources
compile 				compiler:compile
process-test-resources 	resources:testResources
test-compile 			compiler:testCompile
test 					surefire:test
package 				jar:jar and plugin:addPluginArtifactMetadata
install 				install:install
deploy 					deploy:deploy

 当packaging值是pom

phase       goal
package 	site:attach-descriptor
install 	install:install
deploy 		deploy:deploy

 site生命周期和目标绑定关系:

phase       goal
package 	site:attach-descriptor
install 	install:install
deploy 		deploy:deploy

 参考资料:

lifecycle官方定义:http://maven.apache.org/ref/3.5.0/maven-core/lifecycles.html

build:http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html#Lifecycle_Reference

 

分享到:
评论

相关推荐

    Maven生命周期和及插件原理用法详解

    主要介绍了Maven生命周期和及插件原理用法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值的相关资料

    Maven 配置文件 生命周期 常用命令详解

    Maven是围绕着构建生命周期的核心概念为原型,整个项目的创建和部署都是围绕着生命周期展开的,一个生命周期由若干个生命周期阶段组成。下面通过本文给大家介绍Maven 配置文件 生命周期 常用命令详解,一起看看吧

    Maven聚合与继承实例详解.docx

    在javaweb高速发展的今天,我们软件设计人员往往会用很多种...Maven有很好的依赖管理系统(Dependency Management System)和项目生命周期的管理(Project Leftcycle),而其中的依赖管理是本文阐述和做出实例的重点。

    maven window下安装包

    第7章:生命周期和插件/7.2 生命周期详解/7.2.5 命令行和声明周期 第7章:生命周期和插件/7.3 插件目标 第7章:生命周期和插件/7.4 插件绑定 第7章:生命周期和插件/7.4 插件绑定/7.4.1 内置绑定 第7章:生命周期和...

    Maven构建生命周期详细介绍

    主要介绍了Maven构建生命周期详细介绍,小编觉得还是挺不错的,这里分享给大家,需要的朋友可以参考下。

    Eclipse中maven的配置详解

    主要介绍了Eclipse中maven的配置详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

    Maven 详解

    它为构建、测试、部署项目定义了一个标准的生命周期。提供了一个框架,允许遵循Maven标准的所有项目,方便的重用公用的构建逻辑。 Maven项目存在的Apache软件基金会,是一个开源社区,它开发的软件工具,基于一个...

    Maven权威指南 很精典的学习教程,比ANT更好用

    Maven生命周期 (Lifecycle) 3.5.3. Maven坐标 (Coordinates) 3.5.4. Maven仓库(Repositories) 3.5.5. Maven依赖管理 (Dependency Management) 3.5.6. 站点生成和报告 (Site Generation and Reporting) 3.6. ...

    maven 入门学习

    1、详细介绍了maven的基本元素使用以及所涉及到的配置。 2、对maven的生命周期和生效阶段进行详解。 3、对maven的仓库配置进行介绍。

    【2019版】Spring4.3入门视频课程

    bean生命周期、实例化bean的方式和时机、bean的作用域、继承配置 .自动装配、FactoryBean、两种后处理器 二、Spring AOP AOP简介、实现原理、代理技术 Spring AOP的配置实现 AspectJ表达式 三、Spring注解配置 注解...

    JAVA核心知识点整理(有效)

    25 3:ServicorTo 和 ServicorFrom 互换................................................................................................................25 2.3.3.1. 2.4.1. 如何确定垃圾 ......................

Global site tag (gtag.js) - Google Analytics