gradle由简入深

正版图书 Head First 设计模式(中文版) headfirst设计模式深入浅出讲清 java设计模式计算机编程零基础入门教程 【在售价】41.90 元 ----------------- 【立即下单】复制$eaaXcbZbXdA$打开手机淘宝立即下单

众所周知android编译有两种方式分别是,make和gradle

Gradle

gradle这种方式包含project、task、action、closures,他们关系如下图:

gradle由简入深

一个project与一个build.gradle文件是一对一的关系

gradle生命周期,gradle在构建过程中会为每一个参与构建的Project装配一个project对象

gradle由简入深

构建开始首先创建setting对象 确认setting.gradle文件存在,如果存在则根据脚本配置setting对象 根据已经配置好的setting对象配置Project实例层次结构 最后评估每个project对象根据他们的build.gradle文件,每个project对象是在他的子project之前评估,根据每个project的依赖关系和task的依赖关系确定任务集, 执行每个任务集

构建过程可以添加一些监听

beforeEvaluate{"开始评估"}

afterEvaluate{"评估结束"}

task testTask() {

println '配置阶段执行'

doFirst {'执行task时先执行'}

doLast{'执行task时后执行'}

}

那么提出一个问题,build.gradle是一个project对象吗?

答案不是的,根据官方文档介绍可以知道每一个build.gradle脚本与关联的project对象有一个委托关系。所以脚本使用的任何属性或方法都通过关联的项目对象进行委托

翻译上面这段话可以知道,Gradle对项目实例执行项目的构建文件来配置项目。脚本使用的任何属性或方法都通过关联的项目对象进行委托。这意味着,您可以在脚本中直接使用项目接口上的任何方法和属性。根据上面的解释可以知道

栏目
榴芒一刻榴莲泡泡网红大福零食雪媚娘日本糯米糍榴莲麻薯甜品糕点 【在售价】138.00 元 【券后价】88.00元 ----------------- 【立即领券】复制$MYw6cZGNPHS$打开手机淘宝领券并下单