Gradle是一个构建工具,既然是一个构建工具,那么在构建项目的时候肯定有它生命周期,Gradle插件可以在指定的生命周期中插入一些自定义的逻辑,从而实现在项目的构建过程中完成我们想要的功能。Android中常见的 'apply plugin: 'com.android.application',其实引入的就是一个Google为我们开发好的插件
一、Gradle构建的生命周期
在讲解Gradle插件之前,先来看看Gradle的构建生命周期是怎么样的
1.Gradle构建的三个生命周期阶段
-
初始化阶段:读取setting.gradle, 分析出项目包含的project及其他配置
-
配置阶段:递归配置根项目和下面的子项目,主要涉及配置分析即task构建,最后生成task依赖有向图
-
执行阶段:执行task
用一张图表示如下(引用于网络)
2.关于Project
Project在Gradle中代表一个工程module,其实它相当于Java中的一个类,在Android中每一个子模块都是一个project,同时根项目也是一个project,即每一个build.gradle对应一个project,Project提供的生命周期方法有:
//在 Project 进行配置前调用
void beforeEvaluate(Closure closure)
//在 Project 配置结束后调用
void afterEvaluate(Closure closure)
beforeEvaluate 必须在父模块的 build.gradle 对子模块进行配置才能生效,因为在当前模块的 build.gradle 中配置,它自己本身都没配置好,所以不会监听到
3.Gradle的其他生命周期回调方法
Gradle 提供了很多生命周期回调方法,如下所示
//在project进行配置前调用,child project必须在root project中设置才会生效,
//root project必须