Groovy中Gradle构建脚本的依赖关系语法

vwkv1x7d  于 2022-11-01  发布在  其他
关注(0)|答案(1)|浏览(165)

例如这样的Groovy代码:

dependencies {
    classpath 'com.android.tools.build:gradle:0.13.2'
}

我知道classpath是一个函数,通过传递字符串来调用它
但我的问题是:

  1. dependencies是对象project的一个方法吗?
  2. classpathproject的方法还是dependencies的方法?
    1.将闭包传递给函数意味着什么?
wnvonmuf

wnvonmuf1#

试着看看API文档,或者浏览源代码。这有助于你理解它。也就是说,有各种各样的其他事情发生在委托/所有者等等,所以如果你不习惯Groovy的这一方面,检查时并不总是清楚这些东西被调用了。文档中的描述和示例可能对一般用途更有用。
dependencies是Project上的一个方法,其类型为DependencyHandler。(您经常使用的许多内容(如果不是大多数的话)都位于Project上)https://docs.gradle.org/current/javadoc/org/gradle/api/Project.html#dependencies-groovy.lang.Closure- https://docs.gradle.org/current/javadoc/org/gradle/api/artifacts/dsl/DependencyHandler.html
在dependencies块中,调用DependencyHandler的add方法,使用“configuration”和依赖项字符串。这里的classpath是用于构建脚本本身的配置
将闭包传递给函数意味着什么?
Closure是Groovy中的一个类,当您在Gradle中编写这个类时,您将创建一个新的闭包,并将其作为参数传递给函数(参见上面的文档,它们在许多方法中引用Closure作为参数)Groovy docs可以比我更好地解释它们是如何工作的,你可以把它看作是一个lambda,但它不一样它可以在它的所有者上执行代码(通常是定义它的封闭块/闭包),有时可以针对其分配的委托执行。如果您试图了解Gradle配置的内部工作方式,* 通常 * 你可以在上面的类中找到你所需要的大部分内容(例如,在这个例子中,我们主要是在DependencyHandler上调用方法)。

相关问题