Gradle 更新到 Gradle 1.2.2 后构建失败

Gradle build failing after updating to Gradle 1.2.2

我有一个 java 项目,它利用 Gradle 进行测试和构建。我最近不得不将我的 JVM 更新到 1.7.0_75 以便将 Maven 用于另一个工作项目。

现在我回到了我的 Gradle 项目,我发现 gradle -v 正在返回找不到命令,并且在我使用 brew install Gradle 之后,我的构建脚本returns 出现以下错误:

* Where:
Build file '/Users/adamhardie/Documents/Workspace/sagepay-stub/build.gradle' line: 27

* What went wrong:
A problem occurred evaluating root project 'sagepay-stub'.
> No such property: testReport for class: org.gradle.api.tasks.testing.Test_Decorated
Possible solutions: testReporter

我已确认 build.gradle 脚本自上次运行以来没有以任何方式更改,那么导致此错误的可能原因是什么?

下面是似乎引起问题的部分(它是该项目的构建脚本:https://github.com/azagniotov/stubby4j

if (project.name != 'main') {
  tasks.withType(Test) {
     Task testTask ->
        def totalSuiteCount = 0
        def successSuiteCount = 0
        testReport = false
        testLogging {
           events /*"passed", */"skipped", "failed"
           exceptionFormat "full"
           showExceptions true
           showCauses true
           showStackTraces true
        }
        doFirst {
           //println ""
           //println "::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::"
           //println ":::::                         Running " + project.name.toUpperCase() + " module tests"
           //println "::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::"
        }
        afterSuite { testDescriptor, testResult ->
           if (testDescriptor.getName().contains("$stubbyProjectGroup")) {
              totalSuiteCount += testResult.getTestCount()
              totalTestCounter += testResult.getTestCount()
              successSuiteCount += testResult.getSuccessfulTestCount()
           }
        }
        doLast {
           println ""
           println "::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::"
           println ":::::                         Ran " + project.name.toUpperCase() + " module tests"
           println "::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::"
           println ":::::                             Passed (" + successSuiteCount + "/" + totalSuiteCount  + ") tests"
           println ":::::               Total tests executed in $stubbyProjectName project so far " + totalTestCounter
           println "::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::"
           println ""
        } 
  }    
}

似乎 gradle 版本被意外更改,因此出现了问题。 Test class 的 testReport 至少从 gradle 的 1.12 版本开始弃用。

现在可以通过 reports 配置报告,如 here 所述。

抱歉回复这么晚:

stubby4j 最近已升级为使用 Gradle 7.2。要添加更多内容,当前项目 Gradle 配置具有标准配置,没有任何自定义附加组件或黑客。