运行jacocoTestReport gradle任务时出现NoClassDefFoundError

问题描述

我已经为几个gradle项目配置了jacoco coverage插件,但是其中一个在运行jacocoTestReport任务时出现错误。

我曾尝试将jacoco依赖项添加为testRuntime或compile,但这根本没有帮助。

我还尝试添加代理jar,但没有成功。

jacocoTestReport {
    File jacocoLibDir = file("$buildDir/tmp/expandedArchives/org.jacoco.agent-0.8.5")
    jacocoClasspath = files { jacocoLibDir.listFiles() }
}

我得到的错误是:

> Task :jacocoTestReport FAILED

Execution failed for task ':jacocoTestReport'.
> org/jacoco/core/analysis/ICoverageVisitor

* Try:
Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':jacocoTestReport'.
    ...
Caused by: java.lang.NoClassDefFoundError: org/jacoco/core/analysis/ICoverageVisitor
    ... 
Caused by: java.lang.ClassNotFoundException: org.jacoco.core.analysis.ICoverageVisitor
    ... 64 more

解决方法

在build.gradle中添加以下部分可以执行任务

buildscript {
    dependencies {
        classpath("org.jacoco:org.jacoco.ant:0.8.5")
    }
}

jacocoTestReport {
    jacocoClasspath = project.buildscript.configurations.classpath
}

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...