【问题标题】:Gradle configuration/dependency syntaxGradle 配置/依赖语法
【发布时间】:2015-08-23 15:38:23
【问题描述】:

我正在努力理解 gradle groovy 依赖项的语法以及幕后发生的事情。作为初学者,我看不到这段代码 sn-p .... 中到底发生了什么。

dependencies {
    compile group: 'commons-collections', name: 'commons-collections', version: '3.2'
}

我(希望)理解的(如果我错了,请纠正):

  • dependeciesorg.gradle.api.Project 接口的方法/ org.gradle.api.internal.project.DefaultProject 需要一个 闭包配置项目的依赖关系。
  • compile 是由 org.gradle.api.plugins.JavaPlugin 添加的 org.gradle.api.artifacts.Configuration

我不明白的地方:

  • 通过指定group: 'commons-collections', name: 'commons-collections', version: '3.2' 究竟发生了什么?

  • 这是否调用了编译配置对象的一些魔术方法(如果是,是哪一个)?

  • groupnameversion 是方法调用的命名参数还是它们本身的方法调用?

  • 这是否会创建一个新的org.gradle.api.artifacts.Dependency 实例并添加到编译配置中?

【问题讨论】:

标签: gradle


【解决方案1】:

Gradle(与其他使用 Groovy 构建的工具一样)大量使用 methodMissing(...): http://www.groovy-lang.org/metaprogramming.html#_methodmissing

那么在dependencies 的情况下会发生什么,您调用了一个不存在的方法。方法名是配置的名称,它的参数是依赖规范。

methodMissing(...) 将被调用,这将反过来调用DependencyHandleradd(...) 方法之一:https://docs.gradle.org/current/javadoc/org/gradle/api/artifacts/dsl/DependencyHandler.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-03-21
    • 2016-10-09
    • 1970-01-01
    • 2023-03-07
    • 1970-01-01
    • 1970-01-01
    • 2016-07-05
    相关资源
    最近更新 更多