Gradle简介及生命周期

Posted 我就是马云飞

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Gradle简介及生命周期相关的知识,希望对你有一定的参考价值。

Gradle简介

gradle主要是由三个部分组成。

  • groovy 核心语法:包括 groovy 基本语法、闭包、数据结构、面向对象等等。前面我们已经介绍过了。
  • android DSL(build scrpit block):Android 插件在 Gradle 所特有的东西,我们可以在不同的 build scrpit block 中去做不同的事情。
  • Gradle api:包括task,projects,setting等等。

具体如下图:

Gradle优势

  • 灵活性:相对于 Maven、Ant 等构建工具,Gradle 提供了一系列的 API 让我们有能力去修改或定制项目的构建过程。
  • 粒度性:源码的编译,资源的编译,都是一个一个Task的,我们可以修改task来达到精细控制上。
  • 扩展性:Gradle 支持插件机制,所以我们可以复用这些插件,就如同复用库一样简单方便。
  • 兼容性:Gradle 不仅自身功能强大,而且它还能兼容所有的Maven、Ant功能,也就是说,Gradle 吸取了所有构建工具的长处。

Gradle生命周期

gradle的生命周期主要是如下三个部分:

  • 初始化阶段: 解析setting.gradle文件
  • 配置阶段:解析所有的projects对象中的task,主要解析各个project下的build.gradle文件
  • 执行阶段:执行project下具体的的task及其依赖task

接下来我们看下gradle的流程图:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xm51qLF3-1611850101052)(https://s3.ax1x.com/2021/01/19/sgor0e.png)]

将上面流程可以再细化一下,细化之后如下图:

初始化阶段

初始化主要是读取setting.gradle文件中include的projects数量。我们可以通过如下命令查看project数量。

./gradlew project

输出如下:

------------------------------------------------------------
Root project
------------------------------------------------------------
Root project 'APMProjetct'
+--- Project ':apm'
+--- Project ':app'
\\--- Project ':aspectj'

配置阶段

配置阶段主要是构造各个project下的task依赖关系图,需要注意的是,执行任何Gradle命令,在初始化阶段和配置阶段的逻辑都会被执行。

执行阶段

配置完成后,便是依次执行指定的task以及依赖的task。

生命周期的监听

在root project的build.gradle中添加如下代码:

/**
 * 配置阶段开始前的监听回调
 */
this.beforeEvaluate 


/**
 * 配置阶段后的监听回调
 */
this.afterEvaluate 
    println '配置阶段执行完毕...'


/**
 * gradle执行完毕后的回调
 */
this.gradle.buildFinished 
    println '执行阶段执行完毕...'



//等同于 beforeEvaluate
this.gradle.beforeProject 



//等同于 afterEvaluate
this.gradle.afterProject 

构建后,输出如下:


> Configure project :
配置阶段执行完毕...

CONFIGURE SUCCESSFUL in 0s
执行阶段执行完毕...

总结

本文主要是让你对gradle有一个初步对认识,以及gradle的生命周期。接下来我们会介绍最常用project以及task

参考

Gradle系列之三 Gradle概述以及生命周期

本文首发于我的个人博客:Gradle简介及生命周期

更多文章请关注我的公众号:码农职场

以上是关于Gradle简介及生命周期的主要内容,如果未能解决你的问题,请参考以下文章

Activity的生命周期及常见回调顺序

Android Gradle 插件Gradle 构建生命周期 ② ( Gradle 类的添加构建生命周期监听器函数 | Gradle#addListener 函数 )

Gradle快速上手——从Maven到Gradle

Android Gradle 插件Gradle 构建机制 ④ ( Gradle 构建生命周期 | 初始阶段 | 配置阶段 | 执行阶段 )

Ionic 2 中生命周期的命名改变及说明

维度建模数据仓库生命周期简介