buildsgradle中的buildscript和所有项目有什么区别?

在一个多项目gradle构build中,有人能告诉我“allprojects”部分和“buildscript”部分之间的区别究竟是什么? 两者都有repositoriesdependencies任务。 是我的项目的所有项目? 那buildscript呢?

 buildscript { repositories { ... } dependencies { ... } } 

 allprojects(subprojects) { repositories { ... } dependencies { ... } } 

“buildscript”configuration部分用于gradle本身(即更改gradle如何执行构build)。 所以这部分通常会包含Android Gradle插件。

“allprojects”部分是由Gradle构build的模块。

通常情况下,版本库部分对于两者来说都是相同的,因为两者通常都会从jcenter(或者maven central)获得它们的依赖关系。 但“依赖”部分将会有所不同。

通常,“allprojects”的“依赖关系”部分是空的,因为每个模块的依赖性是唯一的,并且将位于每个模块中的“build.gradle”文件中。 但是,如果所有的模块共享相同的依赖关系,那么他们可以在这里列出。