gradle
是什么? 首先明确一点,gradle
只是一个构建工具而已,并非一门语言。
它采用了 Groovy
这个语言,创造了一种DSL
,但它自己不是语言。java
那么,gradle
是如何构建咱们的Android
应用呢? gradle
是按照必定的 gradle
的规则去执行的,好比咱们Android Studio
里面的build.gradle
,setting.gradle
,gradle-wrapper.gradle
,前提是要遵循Groovy
语法。api
闭包: 至关于能够被传递的代码块。闭包
buildType
主要就是配置发布版本和测试版本的一些配置以及混淆文件app
productFlavors
用来作多渠道打包等操做会用到工具
compile
,implementation
和api
implementation
: 不会传递依赖测试
compile
和 api
: 会传递依赖; api
和 是 compile
的替代品gradle
当依赖被传递时,二级依赖的改动会致使 0 级项目从新编译ui
当依赖的改动不会致使0级项目从新编译lua
./gradlew taskName
task
的结构task taskName{
// 普通代码块代码:
{
在task 建立过程当中就会被执行,发生在 `configuration`阶段
}
doFirst{
task 代码
}
doLast {
task 代码
}
}
复制代码
doFirst() 和 doLast() : 在 task 执行过程当中被执行,发生在 execution
阶段.若是用户没有直接或间接执行 task
,那么 doFirst() 和 doLast()代码不会执行spa
doFirst() 和 doLast() 都是 task 代码,其中doFirst() 是往前面插入代码,doLast()是往队列后面插入代码
task 依赖: task taskA(denpendsOn : b) 的形式来指定依赖。指定依赖后,task 会在本身执行前先执行本身的task。
单Project
: build.gradle
多Project
: 由 setting.gradle
配置多个
查找 setting.gradle
的顺序
当前目录
兄弟目录 master
父目录
gradle
执行生命周期初始化阶段: 执行 setting.gradle
,肯定主 project
和 子project
定义阶段: 执行每一个project
的build.gradle
,肯定出全部的 task
所组成的有向无环图
执行阶段:: 按照上一阶段肯定出的有向五环图来执行指定的 task
在阶段之间插入代码:
一二阶段之间
afterEvaluate{
// 插入代码
}
复制代码