扫盲系列 - buildscript 和 allprojects 的区别
通过 AndroidStudio 创建一个项目,就会生成两个 gradle 文件,一个位于项目根目录下面,一个位于 app 下面, app 下面的 gradle 文件我们还经常修改,添加依赖库什么的,可是根目录下面的就不怎么修改了, 这里面有两个感觉很像, buildscript 和 allprojects 什么意思啊,中间还都有 repositories 这个。
buildscript {
//声明 gardle 脚本自身所需要使用的资源,包括依赖项、maven仓库地址、第三方插件
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.1.1'
}
}
allprojects {
repositories {
google()
jcenter()
maven {url 'https://raw.github.com/hoyouly/maven-repository/master'}
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
buildscript
构建用的。声明 gardle 脚本自身所需要使用的资源,包括依赖项、maven仓库地址、第三方插件等。你可以在里面手动添加一些三方插件、库的引用,这样你就可以在脚本中使用它们了。因为是引用,所以 gradle 在执行脚本时,会优先执行 buildscript 代码块中的内容。
- repositories 表示只有编译工具才会用这个仓库
- dependencies classpath ‘com.android.tools.build:gradle:3.1.1’ 表示使用的 gradle 的版本是3.1.1
allprojects
- repositories用于多项目构建,为所有项目提供共同所需依赖包。而子项目可以配置自己的 repositories 以获取自己独需的依赖包。
- 比如子项目里面的 support 依赖库,就会去 allprojects 的 repositories 去找。
- maven {url ‘https://raw.github.com/hoyouly/maven-repository/master’} 就表示项目中用到了我自己的 maven ,
搬运地址:
既已览卷至此,何不品评一二: