参考:
学习Android Studio里的Gradle
https://blog.csdn.net/innost/article/details/48228651
理解根目录下的build.gradle
buildscript {// 构建脚本引用
repositories {//插件仓库配置 https 连接并通过CDN 来提供
jcenter()
}
dependencies {//以来插件
classpath 'com.android.tools.build:gradle:1.3.0'
}
}
allprojects {// 全部项目的配置
repositories {//全部项目引用的基础仓库配置
jcenter()
}
}
task clean(type: Delete) {//声明任务
delete rootProject.buildDir //删除主路径 buildDir 文件夹 ,主文件目录下的build 文件夹
}
buildscript 编译脚本的意思 ,其在构建脚本的时候使用,里面一般有两个值 repositories ,dependencies ,其中dependencies 中的插件都是从 repositories 中的仓库获取,Androidstudio 默认配置jcenter 库。
allprojects 所有项目 引用的仓库配置,其从里面 获取 jar包等内容,常见的配置有 jcenter ,mavenCenter,
google ,阿里的依赖库。。
allprojects {
repositories {
jcenter{ url "http://jcenter.bintray.com/"}
maven { url "https://maven.google.com" }
maven { url "https://dl.google.com/dl/android/maven2/" } /* 解决android.arch.lifecycle:extensions:1.1.1*/
/* lrecyclerview 使用*/
maven { url "https://jitpack.io" }
// 华为离线推送
maven {url 'http://developer.huawei.com/repo/'}
//maven { url "http://10.136.192.250:8083/repository/maven-releases/" }
maven{ url 'http://maven.aliyun.com/nexus/content/groups/public'}
repositories{
flatDir{
dirs 'libs'
}
}
}
}
task clean声明了一个任务,任务名叫clean(也可以改为其它),任务类型是Delete(也可以是Copy),就是每当修改settings.gradle文件后点击同步,就会删除rootProject.buildDir下的文件(实际上我看到的效果是清除了External Libraries里的包,然后又添加了一次)。
// Top-level build file where you can add configuration options common to all sub-projects/modules.
// Gradle中可以使用“//”或“/**/”来添加注释,与Java类似。
// 根目录下的build.gradle用于添加子工程或模块共用的配置项。
// "buildscript"的类型为script block,而且是最上层的script block,用于配置Gradle的Project实例。其API文档为https://docs.gradle.org/current/dsl/org.gradle.api.Project.html#org.gradle.api.Project:buildscript(groovy.lang.Closure)
// 其余的根script block有"allprojects", "dependencies", "configurations"等,更多的可见https://docs.gradle.org/current/dsl/的“Build script structure”一节。
// Script Block是一种method的调用,传入的参数为configuration closure。执行后会对Project的属性进行配置。
// 此处的"buildscript"用于配置Project的build script的classpath。
buildscript {
// 如果需要的话,从https://jcenter.bintray.com/下载code reposities。
repositories {
jcenter()
}
// 定义classpath,gradle会从“repositories”中下载对应版本的Gradle。如果使用gradle wrapper的话,感觉这个配置会被忽略。Wrapper会自己去下载所使用的gradle版本。
dependencies {
classpath 'com.android.tools.build:gradle:2.1.3'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
// 该配置会被应用到所有的子工程。
allprojects {
repositories {
jcenter()
}
}
// 运行gradle clean时,执行此处定义的task。
// 该任务继承自Delete,删除根目录中的build目录。
// 相当于执行Delete.delete(rootProject.buildDir)。
// gradle使用groovy语言,调用method时可以不用加()。
task clean(type: Delete) {
delete rootProject.buildDir
}
网友评论