2017-02-26 93 views
0

尝试在我的gradle项目中运行jacoco时,出现异常。 我加入了以下相关:虽然试图在gitbash中运行“gradle test jacoco”,但我得到TestExecutionException,NoClassDefFoundError,ClassNotFoundException

compile "org.jacoco:org.jacoco.report:0.7.8" 
    compile "org.jacoco:org.jacoco.core:0.7.8" 
    compile "org.ow2.asm:asm-all:5.1" 

我也与像providedCompiletestCompile也不同选项尝试。 我在尝试在gitbash中运行“gradle test jacoco”时遇到此异常。

例外:

org.gralde.api.tasks: TaskExecutionException: Exception failed for task:'practice-app:jacocoTestReport'

Caused by: java.lang.NoClassDefFoundError: org/jacoco/report/IReportVistor

Caused by: java.lang.ClassNotFoundException: org.jacoco.report.IReportVisitor

我也验证了其他可用支票像jacoco罐子在我的本地回购的gradle等

回答

0

我也经历Jacoco整合过程中类似的问题,在我们项目的gradle之一。该插件莫名其妙地没有带来所需的罐子。然后,我尝试添加所有的依赖手动 说: -

compile "org.jacoco:org.jacoco.report:0.7.8" 
compile "org.jacoco:org.jacoco.core:0.7.8" 
compile "org.ow2.asm:asm-all:0.7.8" 

等等,但是这招也没有工作。对jacoco罐子仍然有classnotfound异常。然后经过很多次尝试,我开始了解jacocoClasspath。我做了以下内容:

1)首先改变Jacoco版本

jacoco { 
    toolVersion = "0.7.8+" 
} 

由于得到了一些不兼容的版本问题(不记得确切的错误/异常)。

2)然后,在build.gradle中添加下面的代码,以确保jacoco类路径中存在所需的依赖关系。

jacocoTestReport.doFirst { 
    configurations.testRuntime.each { jacocoClasspath += files(it); } 
} 

注:jacoco应该执行任务前 1)doFirst将被执行。

2)我只是将我的运行时中存在的任何东西添加到jacocoClasspath中。您可以优化代码,只将所需的jar添加到jacoco类路径。

相关问题