Gradle
gradle文件里就是Groove语言
reposistories {
google()
}
相当于
reposistories ({
google()
})
也就是实际上大括号内的就是参数
这是Groove语言的闭包,类似于Java的lamada表达式,把方法作为参数传递,当然Java里的是匿名内部类
闭包:Closure
int methodA = {
return 5
}
void methodB(int value, Closure someMethod) {
someMethod()
}
methodB(5, {
methodA()
})
可以写成
methodB(5) {
methodA()
})
所以传入的google()并不一定会立刻执行,而是被调用到才会执行
buildscript {
repositories {
google()
mavenCentral()
}
dependencies {
classpath "com.android.tools.build:gradle:7.0.4"
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.5.20"
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
methodMissing:如果调用方法没有,会进入这里查找,能查到就执行对应内容
buildTypes {
debug{}
}
flavorDimensions '维度'
productFlavors {
free{}
paid{}
}
task clean(type: Delete) {
print 1
delete rootProject.builder
doLast {
println 3
}
}
先配置在执行,不用task命令也会进行配置
task after(dependsOn: clean) {
doFirst
}
依赖,会在执行前先执行clean task
有向无环图
生命周期:
初始化阶段:执行setting,确定主项目和子项目
配置阶段:绘制task执行依赖图
执行阶段:执行task
在第一个和第二个阶段之间插入任务:写在setting.gradle里
第二第三:在build里afterEvaluate{}
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 炎武的学习笔记!