2

GradleWare 的书 -使用 Gradle 构建和测试- 在第 1.1 节中陈述了以下内容: “每个 Gradle 构建文件都是可执行的 Groovy 脚本。”

但是,当我在 GroovyConsole 中运行 build.gradle 文件时,它给了我这个错误:

groovy.lang.MissingMethodException:没有方法签名:build.apply() 适用于参数类型:(java.util.LinkedHashMap) 值:[[plugin:android-library]] 可能的解决方案:any()、any(groovy .lang.Closure)、every()、every(groovy.lang.Closure)、split(groovy.lang.Closure) 在 build.run(build.gradle:1)

它指的是第1行:

apply plugin: 'android-library'

在构建脚本中:

apply plugin: 'android-library'

dependencies {
  compile 'com.android.support:support-v4:18.0.+'
}

android {
  compileSdkVersion 14
  buildToolsVersion '17.0.0'

  sourceSets {
    main {
      manifest.srcFile 'AndroidManifest.xml'
      java.srcDirs = ['src']
      res.srcDirs = ['res']
    }
  }
}

所以你能澄清一下这本书的说法是对是错吗?

谢谢你,伊戈尔·加纳波尔斯基

4

3 回答 3

1

该声明不应按字面意思理解。Gradle 脚本不能用普通的 Groovy 运行,就像网页上的 Javascript 片段不能在浏览器外部的普通 JavaScript 引擎中运行一样。

于 2013-10-03T18:42:29.100 回答
1

严格来说,gradle 构建文件不是 groovy。它是一种脚本语言,也就是用groovy编写的 DSL(领域特定语言) 。因此,您需要 gradle 发行版来运行任何 gradle 文件,请参阅:https ://gradle.org/install/

于 2019-10-11T21:00:12.483 回答
1

不过,可以将任务添加到 gradle 构建文件以启动 Groovy 控制台,如下所述:

http://piraguaconsulting.blogspot.com.br/2012/02/gradle-groovy-console.html

相关的代码片段是:

task(console, dependsOn: 'classes', type: JavaExec) {
   main = 'groovy.ui.Console'
   classpath = sourceSets.main.runtimeClasspath
}
于 2015-09-24T19:37:10.410 回答