Classpath Gradle中buildscript块的用途

Classpath Gradle中buildscript块的用途,classpath,gradle,Classpath,Gradle,我是Gradle的新手,我正在阅读文档,但我不理解其中的某些部分。其中一个部分与buildscript块连接。它的目的是什么 如果构建脚本需要使用外部库,则可以将它们添加到构建脚本本身的脚本类路径中。您可以使用buildscript()方法执行此操作,并传入一个声明构建脚本类路径的闭包 buildscript{ 存储库{ mavenCentral() } 依赖关系{ 类路径组:“commons codec”,名称:“commons codec”,版本:“1.2” } } 好的,但是有什么区别呢

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

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

buildscript{
存储库{
mavenCentral()
}
依赖关系{
类路径组:“commons codec”,名称:“commons codec”,版本:“1.2”
}
}
好的,但是有什么区别呢

存储库{
mavenCentral()
}
依赖关系{
编译组:“commons codec”,名称:“commons codec”,版本:“1.2”
}

例如,为什么需要使用
buildscript

块确定哪些插件、任务类和其他类可用于构建脚本的其余部分。如果没有
buildScript
块,您可以使用Gradle随附的所有现成功能。如果您还想使用第三方插件、任务类或其他类(在构建脚本中!),则必须在
buildScript
块中指定相应的依赖项。

构建脚本块确定哪些插件、任务类、,其他类可用于构建脚本的其余部分。如果没有
buildScript
块,您可以使用Gradle随附的所有现成功能。如果您还想使用第三方插件、任务类或其他类(在构建脚本中!),则必须在
buildScript
块中指定相应的依赖项。

感谢Peter的回答。。。但是,正如答案和文档中所强调的,构建脚本的其余部分对我来说并不明显


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

我感谢彼得的回答。。。但是,正如答案和文档中所强调的,构建脚本的其余部分对我来说并不明显

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

  • 全局级别的
    依赖项
    存储库
    部分列出了构建源代码和运行源代码等所需的依赖项
  • buildscript
    用于
    build.gradle
    文件本身。因此,这将包含创建RPM的依赖项,
    Dockerfile
    ,以及在所有依赖的
    build.gradle
      • 全局级别的
        依赖项
        存储库
        部分列出了构建源代码和运行源代码等所需的依赖项
      • buildscript
        用于
        build.gradle
        文件本身。因此,这将包含创建RPM的依赖项,
        Dockerfile
        ,以及在所有依赖的
        build.gradle

      “构建脚本”配置部分针对gradle本身(即gradle能够执行构建的方式的更改)。因此,这一部分通常包括Android Gradle插件。

      构建脚本”配置部分是针对Gradle本身的(即对Gradle如何执行构建的更改)。因此,本节通常会包括Android Gradle插件。

      虽然有点高,但希望有所帮助

      对我来说,一旦我开始理解什么是,什么是方法,什么是任务,就开始形成清晰的区别。语法是什么样子的,如何配置它们等等。所以我建议您仔细阅读所有这些。之后,您就可以开始理解这个语法了

      然后,了解对象build.gradle(项目类的一个实例)的类型非常重要,以便了解build.gradle文件中可以包含哪些内容。这将回答“构建脚本”和其他脚本的来源。要扩展您的功能(比如android),请查看如何提供帮助


      最后但并非最不重要的一点是,这里有一个非常好的关于闭包的讨论,委托是理解脚本所必需的概念

      水平有点高,但希望有帮助

      对我来说,一旦我开始理解什么是,什么是方法,什么是任务,就开始形成清晰的区别。语法是什么样子的,如何配置它们等等。所以我建议您仔细阅读所有这些。之后,您就可以开始理解这个语法了

      然后,了解对象build.gradle(项目类的一个实例)的类型非常重要,以便了解build.gradle文件中可以包含哪些内容。这将回答“构建脚本”和其他脚本的来源。要扩展您的功能(比如android),请查看如何提供帮助


      最后但并非最不重要的一点是,这里有一个非常好的关于闭包的讨论,委托是理解脚本所必需的概念

      通过演示Android顶级gradle文件来进行更多解释

      buildscript {
          // this is where we are going to find the libraries defined in "dependencies block" at below
          repositories {
              google()
              jcenter()
              maven { url 'https://dl.bintray.com/kotlin/kotlin-eap' }
          }
      
          // everything listed in the dependencies is actually a plugin, which we'll do "apply plugin" in our module level gradle file.
          dependencies {
              classpath 'com.android.tools.build:gradle:3.4.2' // this is android gradle plugin
              classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" // kotlin gradle plugin
          }
      }
      
      模块级渐变文件

      apply plugin: 'com.android.application'
      apply plugin: 'kotlin-android'
      apply plugin: 'kotlin-android-extensions'
      
      什么是“插件”?它们只是实现插件接口的java类。在界面下,它有一个方法“apply”来添加多个t