// Top-level build file where you can add configuration options common to all sub-projects/modules.
// buildscript该闭包用于给该脚本本身的配置
buildscript {
// buildScript块的repositories主要是为了Gradle脚本自身的执行,获取脚本依赖插件
repositories {
/** 声明使用Google和jcenter的代码托管仓库
大部分的Android开源项目都会将代码托管到这两个仓库
声明这两个仓库之后,需要引入开源项目而本地缓存没有的情况下
便会按照先后顺序去这些仓库寻找,从仓库将相关项目下载到本地**/
// 但是因为网络原因,这两个仓库对于国内来说不太友好,所以通常使用阿里云等镜像站代替使用
// 按需求添加如下几行即可
// maven { url: 'https://maven.aliyun.com/repository/public/' }
// maven{ url: 'https://maven.aliyun.com/repository/google/' }
// maven{ url: 'https://maven.aliyun.com/repository/jcenter/' }
google()
jcenter()
}
//依赖闭包
dependencies {
// 使用classpath声明了一个Gradle插件
// 因为gradle并不是专门用于Android的构建工具,因此声明
// 声明引入"com.android. tools.build:gradle:4.0.1"这个插件,表明这是要构建Android项目
classpath "com.android.tools.build:gradle:4.0.1"
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
// 用于多项目构建,为多项目进行共同配置,对所有项目生效,而每一个子项目中又可以进行单独配置
allprojects {
// allprojects块的repositories用于多项目构建,为所有项目提供共同所需依赖包。
// 而子项目可以配置自己的repositories以获取自己独需的依赖包。
repositories {
google()
jcenter()
}
}
// 运行gradle clean时,执行此处定义的task
// 该任务继承自Delete,删除根目录中的build目录
// 相当于执行Delete.delete(rootProject.buildDir)
// gradle使用groovy语言,调用method时可以不用加()
task clean(type: Delete) {
delete rootProject.buildDir
}