17

我正在运行 gradle,之前一直在运行 groovy 1.76。我现在已经在我的本地机器上更新了 groovy(groovy_home 指向 groovy 2.1.2 等)。

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

但是,当我运行 gradle 命令(gradle 测试、类等)时,我相信它不是针对 groovy 2.1.2 构建的,但实际上仍在针对 1.76 构建。(我相信这一点的原因是,当我执行这些类时,我不断收到此错误Upgrading Groovy 1.7 - 2.1 Incompatability,这与 1.76 后所做的更改有关)

有没有办法确认我的 gradle 安装是针对哪个版本的 groovy 构建的?

另外,谁能确认我应该在哪里为 gradle 配置 groovy 版本?

4

3 回答 3

29

在 gradle 运行时尝试检查 groovy 版本时,我发现您还可以打印 Groovy 版本:

task version { 
  doLast {
    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

注意.- 从 Groovy 1.6.9GroovySystem.getVersion()开始可用

于 2014-10-02T07:15:53.683 回答
9

您正在构建的 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"
}
于 2013-05-13T17:43:18.980 回答
2

在 Windows 中,您可以使用以下命令进行检查:gradlew --v

------------------------------------------------------------
Gradle 6.2
------------------------------------------------------------

Build time:   2020-02-17 08:32:01 UTC
Revision:     61d3320259a1a0d31519bf208eb13741679a742f

Kotlin:       1.3.61
Groovy:       2.5.8
Ant:          Apache Ant(TM) version 1.10.7 compiled on September 1 2019
JVM:          15.0.2 (Oracle Corporation 15.0.2+7-27)

在 linux 上,命令将是:gradle --v

于 2021-02-23T12:59:16.553 回答