一.Gradle基本概念讲解
1.Gradle是什么,能做什么
- 用来构建应用程序
- 是一个编程框架,可以使用Groovy语法进行编写
2.Gradle优势
- 灵活性高,可以使用if else等语句
- 粒度性清晰,可以通过每一步Task查看每一步的内容,也可以通过修改对应的构建过程
- 扩展性上,可以使用java进行开发
- 兼容性高
二.Gradle的执行流程[即生命周期]
- 当使用
./gradlew clean
执行时相当于执行clean的task,但为什么会同时执行其他的task呢?因为task是有依赖的,执行某个task会把依赖的task都执行一次。 - Gradle的执行流程
- Initialization初始化阶段[解析整个工程中所有Project,构建所有的Project对应的project对象]
- 注:初始化阶段其实就是执行setting.gradle,通过setting.gradle中读出一共有多少个project
- Configuration配置阶段[解析所有的projects对象中的task,构建好所有task的拓扑图]
- Execution执行阶段[执行具体的task及依赖task(通过配置阶段生成的task拓扑图)]
- …
三.Gradle生命周期监听
// 在初始化阶段之后和配置阶段之前的事件监听回调
this.beforeEvaluate{...} //等同于this.gradle.beforeProject{...}
// 在配置阶段之后和执行阶段之前的事件监听回调
this.afterEvaluate{...} //等同于this.gradle.afterProject{...}
// 在执行阶段之后的事件监听回调
this.gradle.buildFinished{...}
// 也可以通过this.gradle.addListener()的方式监听到生命周期的不同阶段