Gradle中buildScript的用途

我是新来的Gradle,我正在阅读文档,但我不明白它的一些部分。 其中一个部分与buildScript块连接。 它的目的是什么?

如果您的构build脚本需要使用外部库,则可以将它们添加到构build脚本本身的脚本的类path中。 您可以使用buildscript()方法执行此操作,并传入一个声明构build脚本类path的闭包。

buildscript { repositories { mavenCentral() } dependencies { classpath group: 'commons-codec', name: 'commons-codec', version: '1.2' } } 

好的,但有什么区别:

 repositories { mavenCentral() } dependencies { compile group: 'commons-codec', name: 'commons-codec', version: '1.2' } 

例如,为什么有必要使用buildScript

buildScript块确定哪些插件,任务类和其他类可用于构build脚本其余部分 。 如果没有buildScript块,您可以使用Gradle开箱即用的所有东西。 如果您还想使用第三方插件,任务类或其他类(在构build脚本中),则必须在buildScript块中指定相应的依赖关系。

  • 全局级别dependenciesrepositories部分列出了构build源代码和运行源代码所需的依赖关系。
  • buildscript是为build.gradle文件本身。 所以,这将包含依赖关系来创buildRPM, Dockerfile和任何其他依赖关系,以便在所有依赖的build.gradle运行任务。

我很感谢彼得的回答……但是我不清楚构build脚本的其余部分是如何在答案和文档中强调的。

通常引入依赖的function是用于Java程序或其他任何可能编写的程序。 引入Spring说,不是用在构build脚本中,而是用在Java程序中。 将它放在buildscript闭包中可确保依赖关系可用于gradle构build本身。 不是输出程序。

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