`

Maven生命周期和阶段详解

阅读更多

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

Java代码 
  1. clean阶段:处理项目的清理工作  
  2. default阶段:处理项目的deploy  
  3. site阶段:处理网站站点的创建  

 

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

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

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

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

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

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

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

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

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

goal 和liftcycle phase关系

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

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

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

Java代码 
  1. phase   goal  
  2. clean  clean:clean  

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

 当packaging值是jar /  rar / war

Java代码 
  1. phase               goal  
  2. process-resources       resources:resources  
  3. compile                 compiler:compile  
  4. process-test-resources  resources:testResources  
  5. test-compile            compiler:testCompile  
  6. test                    surefire:test  
  7. package                 jar:jar or rar:rar or war:war  
  8. install                 install:install  
  9. deploy                  deploy:deploy  

 

当packaging值是maven-plugin

Java代码 
  1. phase                   goal  
  2. generate-resources      plugin:descriptor  
  3. process-resources       resources:resources  
  4. compile                 compiler:compile  
  5. process-test-resources  resources:testResources  
  6. test-compile            compiler:testCompile  
  7. test                    surefire:test  
  8. package                 jar:jar and plugin:addPluginArtifactMetadata  
  9. install                 install:install  
  10. deploy                  deploy:deploy  

 当packaging值是pom

Java代码 
  1. phase       goal  
  2. package     site:attach-descriptor  
  3. install     install:install  
  4. deploy      deploy:deploy  

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

Java代码 
  1. phase       goal  
  2. package     site:attach-descriptor  
  3. install     install:install  
  4. 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

 

 

http://www.iteye.com/news/32493

分享到:
评论

相关推荐

    Maven3实战笔记04Maven的生命周期和插件

    #### Maven生命周期概述 Maven是一个项目管理和综合工具,它通过一系列预定义的任务和明确的构建生命周期来管理项目的构建、报告和文档。Maven的核心特性之一是其生命周期(Lifecycle),它定义了一系列必须按顺序...

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

    Maven生命周期和插件原理用法详解 Maven生命周期是Maven项目构建的核心机制,它定义了项目从编译到部署的整个过程。Maven生命周期可以分为三大阶段:clean周期、default周期和site周期。 1. Clean周期:负责清理...

    maven基本命令详解

    Maven 是一款非常强大的 Java 项目构建工具,它通过一系列的预定义生命周期和插件,简化了项目的构建、依赖管理和部署等工作。本文将对 Maven 的一些常用基本命令进行详细介绍。 #### 1. Maven 项目创建 在创建一...

    Maven下载安装与配置详解.zip

    ### 七、Maven生命周期与构建阶段 Maven拥有多个生命周期,如`default`、`clean`和`site`,每个生命周期包含一系列的构建阶段。例如,`default`生命周期的`install`阶段会将构建好的项目安装到本地仓库,`deploy`...

    Intellj构建和部署Maven Web项目详解

    - **生命周期管理**:Maven定义了一系列的生命周期,简化了构建过程中的命令和目标。 - **项目信息管理**:Maven提供了丰富的项目信息,如文档、报告、许可证等。 #### 二、使用IntelliJ IDEA创建Maven Web项目 1....

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

    Maven作为一个强大的构建工具,通过其依赖管理系统和项目生命周期管理,帮助开发者有效地管理项目。本文将深入探讨Maven的聚合与继承特性,并通过实例进行详细解释。 首先,Maven的依赖管理系统允许开发者声明项目...

    maven3.0.3及eclipse-maven3-plugin插件

    4. **支持Maven生命周期和构建过程**: 开发者可以在 Eclipse 中直接触发 Maven 生命周期的不同阶段,如编译、测试和打包,这极大地提高了开发效率。 5. **聚合项目的支持**: 对于包含多个子模块的 Maven 多模块...

    maven与eclipse配置详解(含maven)

    Maven的生命周期和构建阶段是其核心概念。生命周期包括`clean`、`default`(或`compile`)、`verify`、`package`、`install`和`deploy`等阶段。每个阶段都有对应的默认目标,比如`compile`阶段用于编译源代码,`...

    Maven 项目管理工具项目构建、依赖管理和项目生命周期管理

    Maven 项目生命周期是指一系列按照特定顺序执行的构建阶段。每个阶段都有其特定的目的,并且通常会执行一组预定义的任务。Maven 提供了三种标准生命周期: 1. **Clean Lifecycle(清理生命周期)** - `clean`:此...

    maven介绍及配置详解

    - **标准化构建过程:** Maven定义了一系列生命周期(LifeCycle)和构建阶段(Phase),这些生命周期和阶段是固定不变的。 - **依赖管理:** Maven提供了强大的依赖管理系统,能够自动下载和管理项目所需的JAR包等...

    第四课:Maven私服构建与插件开发1

    1. Maven生命周期详解: Maven生命周期是Maven管理项目构建过程的核心概念,它将构建过程划分为一系列有序的阶段(phase),使得开发者可以按需扩展或定制。生命周期包括三个主要部分:clean生命周期、default生命...

    maven及其maven本地仓库

    ** Maven生命周期与构建阶段 ** Maven的生命周期包括清洁(clean)、编译(compile)、测试(test)、打包(package)、验证(verify)、安装(install)和部署(deploy)等阶段。开发者可以通过命令行或者在IDE中...

    Maven使用实战-从入门到精通实践【张振华.Jack】

    组合及其继承(modules)、生命周期及阶段、常用的命令 不同开发环境的部署( profile ) 插件( compiler 、eclipse、 jar 、war、jetty)等 仓库( repository 、 distributionManagement ) 不存在的jar怎么办?

    maven3.0 maven3.0

    4. **更灵活的生命周期**:Maven 3.0 改进了生命周期阶段,使得用户可以更自由地自定义构建流程,增加了更多的内置目标,方便开发者进行各种操作。 5. **增强的错误报告**:Maven 3.0 提供了更详细的错误报告,帮助...

    maven工具包 maven plugins

    - **生命周期(Lifecycle)**:Maven有三个主要的生命周期阶段:`clean`(清理)、`default`(构建)和`site`(站点生成)。每个阶段包含一系列的阶段(phase),如`compile`、`test`、`package`等。 - **插件...

    maven教程-maven教程-maven教程

    Maven是Java领域广泛使用的项目管理工具,它能够帮助开发者完成项目的构建、文档生成、报告、依赖管理和软件生命周期管理等工作。通过本文的介绍,我们可以了解到Maven的基本概念、安装配置、基本使用和深入应用详解...

    maven.rar=maven安装包+maven仓库

    ** Maven生命周期与构建过程 ** Maven有三个主要的生命周期阶段:clean、default和site。default生命周期包含了编译(compile)、测试(test)、打包(package)、集成测试(integration-test)、验证(verify)、...

Global site tag (gtag.js) - Google Analytics