前言
从这一篇开始我们就真正学习Gradle了,我们之前一直讲解Groovy语法也是为了我们更好更快的学习Gradle
1.Gradle基本概念讲解
Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建工具。它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置,抛弃了基于XML的各种繁琐配置。同时也是一个开发框架,基于Groovy语言,我们来看下Gradle的组成
它既有自己的语法基于Groovy,同时有有相应的api,所以我们完全可以把Gradle当成一个开发框架而不仅仅是一个构建工具,同时我们就可以灵活根据它提供的api实现构建过程中的需求,像写脚本一样的去写项目的构建规则.我们知道之前Android的项目构建工具是Ant, 用过eclipse的同学应该都用过。 Ant的编译规则是基于xml的,用xml我们是没法写像if/else这种逻辑判断的.
2.Gradle的执行流程

2.Gradle生命周期监听
我们通过上面的那个流程图知道gradle执行过程分三步,那么我们能不能监听每一步的完成状态呢?答案是肯定的,这里分别对应三个方法beforeEvaluate,afterEvaluate,buildFinished
beforeEvaluate:配置阶段开始前的回调监听,即:Initialzation与Configuration之间afterEvaluate:配置阶段完成以后的回调监听,即:在Configuration与Execution之间buildFinished:gradle执行完毕的回调监听,即:在Execution之后
我们这里新建一个Android项目实践下
接下里我们就在我们项目的build.gradle中添加上我们刚才写的那三个方法,同时在每个方法里面都输出一句话

我们在settings.gradle中也打印一句话,这个文件后面我们会说到
OK,都配置完后,我们执行一个简单的指令
我们想测试下beforeEvaluate这个方法我们需要配合子项目app,我们先在我们的app子项目build.gradle里面加上监听
然后在我们的project的build.gradle中加上一段代码
然后我们执行下gradle -q
我们通过另外一组方法也可以监听生命周期
// 与 this.beforeEvaluate {} 一样
this.gradle.beforeProject {}
// 与 this.afterEvaluate {} 一样
this.gradle.afterProject {}
用法上都差不多,这里就不在写例子了,读者可以自行验证下