Gradle 带JacoCoPlugin的NullPointerException

Gradle 带JacoCoPlugin的NullPointerException,gradle,azure-devops,jacoco,jacoco-plugin,Gradle,Azure Devops,Jacoco,Jacoco Plugin,我在Azure DevOps上运行最新版本(6.8)的构建,我得到了NPE: Caused by: java.lang.NullPointerException at org.gradle.testing.jacoco.plugins.JacocoPluginExtension.applyTo(JacocoPluginExtension.java:162) at org.gradle.testing.jacoco.plugins.JacocoPluginExtension$app

我在Azure DevOps上运行最新版本(6.8)的构建,我得到了NPE:

Caused by: java.lang.NullPointerException
    at org.gradle.testing.jacoco.plugins.JacocoPluginExtension.applyTo(JacocoPluginExtension.java:162)
    at org.gradle.testing.jacoco.plugins.JacocoPluginExtension$applyTo.call(Unknown Source)
    at org.akhikhl.gretty.StartBaseTask.initJacoco(StartBaseTask.groovy:156)
    at org.akhikhl.gretty.StartBaseTask.<init>(StartBaseTask.groovy:41)
    at org.akhikhl.gretty.AppStartTask.<init>(AppStartTask.groovy)
    at org.akhikhl.gretty.AppStartTask_Decorated.<init>(Unknown Source)
我在Azure DevOps管道中有这样的配置:

- task: Gradle@2
  displayName: 'Build and run unit tests'
  inputs:
    gradleWrapperFile: project-name/gradlew
    workingDirectory: project-name
    testResultsFiles: 'project-name/build/test-results/test/TEST-*.xml'
    sonarQubeRunAnalysis: true
    sonarQubeGradlePluginVersion: 2.6.2
知道为什么会这样吗

带JacoCoPlugin的NullPointerException

如果repo中的项目文件夹中存在“
.gradle
”文件夹。请尝试从repo中删除
.gradle
文件夹,然后再次重建管道

注意:备份,以防万一


此外,如果上述建议不适用于您,请尝试在没有Azure devops的本地版本中构建它,以检查您是否仍然存在此问题。

从堆栈跟踪中可以看出,当Gretty插件尝试配置JaCoCo插件时,会发生NullPointerException

Gradle的发展非常快,API经常被弃用,并在以后至少有一个主要版本被删除(例如,在5.0中弃用,在6.0中删除)。构建脚本和插件作者通常需要一到两年的时间来应对这些批评

虽然您没有提及,但我很确定您使用的是三年多以前的版本:

至少我可以使用该版本重现问题和相同的堆栈跟踪

虽然它看起来像几年前就被废弃了,但事实并非如此。相反,插件已经被分叉(从
org.akhikhl.gretty
org.gretty
):

甚至还有一个例子描述了NullPointerException问题(一直追溯到Gradle4.6)

因此,要修复它,请将Gretty插件ID更改为新名称空间,并使用最新版本:

插件{
id“org.gretty”版本“3.0.3”
}

您使用的是什么版本的Gretty插件?我使用的是最新版本的Gretty插件。你让我开心!
- task: Gradle@2
  displayName: 'Build and run unit tests'
  inputs:
    gradleWrapperFile: project-name/gradlew
    workingDirectory: project-name
    testResultsFiles: 'project-name/build/test-results/test/TEST-*.xml'
    sonarQubeRunAnalysis: true
    sonarQubeGradlePluginVersion: 2.6.2