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简介及生命周期的主要内容,如果未能解决你的问题,请参考以下文章
Android Gradle 插件Gradle 构建生命周期 ② ( Gradle 类的添加构建生命周期监听器函数 | Gradle#addListener 函数 )
Android Gradle 插件Gradle 构建机制 ④ ( Gradle 构建生命周期 | 初始阶段 | 配置阶段 | 执行阶段 )