系列文章往这看
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的流程图:
将上面流程可以再细化一下,细化之后如下图:
初始化阶段
初始化主要是读取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 核心之 Project
Gradle系列之三 Gradle概述以及生命周期
本文首发于我的个人博客:Gradle简介及生命周期
更多文章请关注我的公众号:码农职场