前言
从这一篇开始我们就真正学习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 {}
用法上都差不多,这里就不在写例子了,读者可以自行验证下