Android Gradle学习系列(五)-Gradle生命周期探索

前言

从这一篇开始我们就真正学习Gradle了,我们之前一直讲解Groovy语法也是为了我们更好更快的学习Gradle

1.Gradle基本概念讲解

Gradle是一个基于Apache AntApache 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:配置阶段开始前的回调监听,即:InitialzationConfiguration之间
  • afterEvaluate:配置阶段完成以后的回调监听,即:在ConfigurationExecution之间
  • buildFinished:gradle执行完毕的回调监听,即:在Execution之后

我们这里新建一个Android项目实践下
在这里插入图片描述
接下里我们就在我们项目的build.gradle中添加上我们刚才写的那三个方法,同时在每个方法里面都输出一句话

在这里插入图片描述

我们在settings.gradle中也打印一句话,这个文件后面我们会说到

在这里插入图片描述
OK,都配置完后,我们执行一个简单的指令
在这里插入图片描述
我们想测试下beforeEvaluate这个方法我们需要配合子项目app,我们先在我们的app子项目build.gradle里面加上监听

在这里插入图片描述
然后在我们的projectbuild.gradle中加上一段代码
在这里插入图片描述
然后我们执行下gradle -q
在这里插入图片描述
我们通过另外一组方法也可以监听生命周期

// 与 this.beforeEvaluate {} 一样
this.gradle.beforeProject {}
// 与 this.afterEvaluate {} 一样
this.gradle.afterProject {}

用法上都差不多,这里就不在写例子了,读者可以自行验证下

发布了87 篇原创文章 · 获赞 319 · 访问量 149万+

猜你喜欢

转载自blog.csdn.net/Greathfs/article/details/102809350