2013-05-13 95 views
7

我正在运行gradle,并且以前一直在运行groovy 1.76。我现在更新到我的本地机器groovy(groovy_home指向groovy 2.1.2等)。检查Groovy版本Gradle正在使用

$ groovy -version 
Groovy Version: 2.1.2 JVM: 1.7.0_17 Vendor: Oracle Corporation OS: Linux 

然而,当我运行gradle这个命令(gradle这个测试类等),我相信这是不是对建设2.1.2常规,但实际上仍然是建立对1.76。 (我相信这个的原因是,当我执行类时,我一直得到这个错误Upgrading Groovy 1.7 - 2.1 Incompatability,这与后1.76发生的变化有关)

有没有一种方法来确认我的gradle安装建立哪个版本的groovy ?

另外,任何人都可以确认我应该配置gradle的groovy版本吗?

+0

你更新了'PATH'来确认它是正确的吗? – raffian 2013-05-13 17:05:31

回答

5

您正在构建哪个Groovy库(以及您正在使用的是哪个Groovy编译器)取决于Groovy库驻留在compile(或更早的Gradle版本,groovy)配置中。通常,Groovy依赖项是显式配置的,但它也可能由传递性依赖管理引入。 (如果发生版本冲突,默认情况下版本会更高版本。您安装在机器上的哪个版本的Groovy是不相关的。)gradle dependencyInsight --configuration compile --dependency groovy应该提供答案。

下面是一个Groovy依赖关系通常被配置为:

apply plugin: "groovy" 

repositories { 
    mavenCentral() // or some other repository containing a Groovy library 
} 

dependencies { 
    // in Gradle 1.4 or earlier, replace 'compile' with 'groovy' 
    compile "org.codehaus.groovy:groovy-all:2.1.2" 
} 
+0

完美的感谢 - 是一个白痴,完全错过了groovy依赖声明! – rhinds 2013-05-14 09:30:07

12

虽然试图gradle这个运行时检查常规版本,我发现你还可以打印Groovy的版本:

task version << { 
    println "Gradle version: " + project.getGradle().getGradleVersion() 
    println "Groovy version: " + GroovySystem.getVersion() 
} 

由于示例:

$ ~/usr/gradle-1.8/bin/gradle -q version 
Gradle version: 1.8 
Groovy version: 1.8.6 

$ ~/usr/gradle-2.1/bin/gradle -q version 
Gradle version: 2.1 
Groovy version: 2.3.6 

注 - GroovySystem.getVersion()可用,因为Gr oovy 1.6.9