一直想系统全面的记录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 配置文件 生命周期 常用命令详解,一起看看吧
在javaweb高速发展的今天,我们软件设计人员往往会用很多种...Maven有很好的依赖管理系统(Dependency Management System)和项目生命周期的管理(Project Leftcycle),而其中的依赖管理是本文阐述和做出实例的重点。
第7章:生命周期和插件/7.2 生命周期详解/7.2.5 命令行和声明周期 第7章:生命周期和插件/7.3 插件目标 第7章:生命周期和插件/7.4 插件绑定 第7章:生命周期和插件/7.4 插件绑定/7.4.1 内置绑定 第7章:生命周期和...
主要介绍了Maven构建生命周期详细介绍,小编觉得还是挺不错的,这里分享给大家,需要的朋友可以参考下。
主要介绍了Eclipse中maven的配置详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
它为构建、测试、部署项目定义了一个标准的生命周期。提供了一个框架,允许遵循Maven标准的所有项目,方便的重用公用的构建逻辑。 Maven项目存在的Apache软件基金会,是一个开源社区,它开发的软件工具,基于一个...
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. ...
1、详细介绍了maven的基本元素使用以及所涉及到的配置。 2、对maven的生命周期和生效阶段进行详解。 3、对maven的仓库配置进行介绍。
bean生命周期、实例化bean的方式和时机、bean的作用域、继承配置 .自动装配、FactoryBean、两种后处理器 二、Spring AOP AOP简介、实现原理、代理技术 Spring AOP的配置实现 AspectJ表达式 三、Spring注解配置 注解...
25 3:ServicorTo 和 ServicorFrom 互换................................................................................................................25 2.3.3.1. 2.4.1. 如何确定垃圾 ......................