运行build.gradle的GroovyConsole

运行build.gradle的GroovyConsole,gradle,android-gradle-plugin,groovy-console,Gradle,Android Gradle Plugin,Groovy Console,GradleWare的书————在第1.1节中陈述了以下内容: “每个Gradle构建文件都是一个可执行的Groovy脚本。” 但是,当我在GroovyConsole中运行build.gradle文件时,会出现以下错误: groovy.lang.MissingMethodException:没有方法的签名: build.apply()适用于参数类型: (java.util.LinkedHashMap)值:[[插件:android库]]可能 解决方案:any()、any(groovy.lang.C

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

但是,当我在GroovyConsole中运行build.gradle文件时,会出现以下错误:

groovy.lang.MissingMethodException:没有方法的签名: build.apply()适用于参数类型: (java.util.LinkedHashMap)值:[[插件:android库]]可能 解决方案:any()、any(groovy.lang.Closure)、every(), each(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']
    }
  }
}
那么你能澄清一下这本书的陈述是正确的还是错误的吗

谢谢,,
Igor Ganapolsky

这句话不能从字面上理解。Gradle脚本不能与普通Groovy一起运行,就像网页上的Javascript片段不能在浏览器外的普通Javascript引擎中运行一样。

可以向Gradle构建文件添加任务以启动Groovy控制台,但如下所述:

相关的代码片段是:

task(console, dependsOn: 'classes', type: JavaExec) {
   main = 'groovy.ui.Console'
   classpath = sourceSets.main.runtimeClasspath
}

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

如果stmt不能从字面上理解,那么如何理解它:隐喻还是象征??使用Node.js,JavaScript可以轻松地在浏览器之外运行!你没有明白我的意思。Gradle构建脚本类似于使用DOM和其他浏览器API的JavaScript代码,因此不能在浏览器外部运行。这完全取决于如何定义“可执行Groovy脚本”。它是Groovy脚本吗?对它是可执行的吗?对它可以在任何环境中运行吗?不,我明白了。谢谢你的解释。我认为这篇文档可能会误导Gradle的初学者……Android Studio附带了Gradle,但他在GroovyConsole中运行它,因此他必须导入相关的graddle类,也就是将*.jar添加到类路径中。