首页 文章

Gradle中buildscript块的目的

提问于
浏览
182

我是Gradle的新手,我正在阅读文档,但我不了解它的某些部分 . 其中一个部分与 buildscript 块连接 . 它的目的是什么?

如果构建脚本需要使用外部库,则可以将它们添加到构建脚本本身的脚本类路径中 . 您可以使用buildscript()方法执行此操作,并传入一个声明构建脚本类路径的闭包 . buildscript {
存储库{
mavenCentral()
}
依赖{
classpath group:'commons-codec',name:'commons-codec',version:'1.2'
}
}

好的但是有什么区别:

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

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

5 回答

  • 3

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

  • 105
    • 全局级 dependenciesrepositories 部分列出了构建源和运行源等所需的依赖项 .

    • buildscript 用于 build.gradle 文件本身 . 因此,这将包含创建RPMs, Dockerfile 以及用于在所有依赖项中运行任务的任何其他依赖项的依赖项 build.gradle

  • 59

    我很欣赏Peter的回答......但是对于我来说,在答案和文档中强调构建脚本的其余部分并不是很明显 .

    通常引入依赖功能是用于Java程序或您可能正在编写的任何其他程序 . 引入Spring说,不是在构建脚本中使用,而是在Java程序中使用 . 将它放在 buildscript 闭包中可确保依赖项可在gradle构建本身中使用 . 不是输出程序 .

  • 6

    “buildscript”配置部分用于gradle本身(即更改gradle如何执行构建) . 所以本节通常会包含Android Gradle插件 .

  • 140

    这有点高,但希望有所帮助 .

    对我来说,一旦我开始理解什么是a building block,方法和任务,明显的区别就开始形成 . 语法如何,如何配置它们等等 . 所以我建议你仔细阅读所有这些 . 之后,您可以开始理解这种语法 .

    然后它就是对象build.gradle(Project类的一个实例)的类型,以便知道build.gradle文件中有什么内容 . 这将回答'buildScript'和其他人的来源 . 并扩展您的功能/功能(让我们说android),看看plugins如何帮助 .

    最后但并非最不重要的是,这里有一个非常好的tutorial,它讨论了闭包,代理是理解脚本必不可少的概念 .

相关问题