创建报告时如何修复错误(jacoco)
How to fix error while creating report (jacoco)
我在 运行 我的黑盒测试代码时遇到错误。我正在使用最新的 0.8.2 jacoco 罐子,但它抛出了以下错误:
BUILD FAILED
C:\project\build-continous-integration.xml:71: The following error occurred while executing this line:
C:\project\build-continous-integration.xml:94: The following error occurred while executing this line:
C:\project\build-continous-integration.xml:152: Error while creating report
at org.jacoco.ant.ReportTask.execute(ReportTask.java:501)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292)
at jdk.internal.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:99)
at org.apache.tools.ant.Task.perform(Task.java:350)
at org.apache.tools.ant.Target.execute(Target.java:449)
at org.apache.tools.ant.Target.performTasks(Target.java:470)
at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1388)
at org.apache.tools.ant.helper.SingleCheckExecutor.executeTargets(SingleCheckExecutor.java:36)
at org.apache.tools.ant.Project.executeTargets(Project.java:1251)
at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:437)
at org.apache.tools.ant.taskdefs.CallTarget.execute(CallTarget.java:105)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292)
at jdk.internal.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:99)
at org.apache.tools.ant.Task.perform(Task.java:350)
at org.apache.tools.ant.Target.execute(Target.java:449)
at org.apache.tools.ant.Target.performTasks(Target.java:470)
at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1388)
at org.apache.tools.ant.helper.SingleCheckExecutor.executeTargets(SingleCheckExecutor.java:36)
at org.apache.tools.ant.Project.executeTargets(Project.java:1251)
at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:437)
at org.apache.tools.ant.taskdefs.CallTarget.execute(CallTarget.java:105)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292)
at jdk.internal.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:99)
at org.apache.tools.ant.Task.perform(Task.java:350)
at org.apache.tools.ant.Target.execute(Target.java:449)
at org.apache.tools.ant.Target.performTasks(Target.java:470)
at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1388)
at org.apache.tools.ant.Project.executeTarget(Project.java:1361)
at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
at org.apache.tools.ant.Project.executeTargets(Project.java:1251)
at org.apache.tools.ant.Main.runBuild(Main.java:834)
at org.apache.tools.ant.Main.startAnt(Main.java:223)
at org.apache.tools.ant.launch.Launcher.run(Launcher.java:284)
at org.apache.tools.ant.launch.Launcher.main(Launcher.java:101)
Caused by: java.io.IOException: Error while analyzing
project\bc\infra\commands\AbstractCommand.class.
at org.jacoco.core.analysis.Analyzer.analyzerError(Analyzer.java:170)
at org.jacoco.core.analysis.Analyzer.analyzeClass(Analyzer.java:142)
at org.jacoco.core.analysis.Analyzer.analyzeClass(Analyzer.java:165)
at org.jacoco.core.analysis.Analyzer.analyzeAll(Analyzer.java:201)
at org.jacoco.ant.ReportTask.createBundle(ReportTask.java:570)
at org.jacoco.ant.ReportTask.createReport(ReportTask.java:542)
at org.jacoco.ant.ReportTask.execute(ReportTask.java:495)
... 42 more
Caused by: java.lang.IllegalArgumentException
at org.objectweb.asm.ClassReader.<init>(Unknown Source)
at org.objectweb.asm.ClassReader.<init>(Unknown Source)
at org.jacoco.core.analysis.Analyzer.analyzeClass(Analyzer.java:118)
at org.jacoco.core.analysis.Analyzer.analyzeClass(Analyzer.java:140)
... 47 more
我检查了很多主题,但大多数问题都是关于检测的 class 但在这里我没有看到这个错误。有人知道如何解决吗?
如果您需要更多信息,请告诉我。
提前致谢。
Caused by: java.lang.IllegalArgumentException
at org.objectweb.asm.ClassReader.<init>(Unknown Source)
我在 ASM 库的堆栈跟踪中唯一知道的 Unknown Source
案例是使用不包含调试信息的 JAR,并且 were removed in ASM version 6.0。所以您可能使用的 ASM 版本 < 6.0.
但是根据堆栈跟踪中模块名称的存在
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
您正在使用 Java >= 9.
ASM 版本 < 6.0 无法处理 Java >= 9 类 并且在这种情况下恰好在 org.objectweb.asm.ClassReader.<init>
.
处抛出 IllegalArgumentException
此外 JaCoCo 0.8.2 requires usage of ASM 6.2.1 并完全取决于此版本。
at org.jacoco.ant.ReportTask.execute(ReportTask.java:501)
对于 Ant,您必须使用 JaCoCo 发行版中的 lib/jacocoant.jar
而不是 lib/org.jacoco.ant-0.8.2.201808211720.jar
,因为第一个 包含所有必需的依赖项 ,而最后一个不包含。根据 https://www.jacoco.org/jacoco/trunk/doc/repo.html,它对应于来自 Maven 中央存储库的工件,其 groupId
是 org.jacoco
,artifactId
是 org.jacoco.ant
,最重要的是 classifier
是 nodeps
.
我在 运行 我的黑盒测试代码时遇到错误。我正在使用最新的 0.8.2 jacoco 罐子,但它抛出了以下错误:
BUILD FAILED
C:\project\build-continous-integration.xml:71: The following error occurred while executing this line:
C:\project\build-continous-integration.xml:94: The following error occurred while executing this line:
C:\project\build-continous-integration.xml:152: Error while creating report
at org.jacoco.ant.ReportTask.execute(ReportTask.java:501)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292)
at jdk.internal.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:99)
at org.apache.tools.ant.Task.perform(Task.java:350)
at org.apache.tools.ant.Target.execute(Target.java:449)
at org.apache.tools.ant.Target.performTasks(Target.java:470)
at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1388)
at org.apache.tools.ant.helper.SingleCheckExecutor.executeTargets(SingleCheckExecutor.java:36)
at org.apache.tools.ant.Project.executeTargets(Project.java:1251)
at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:437)
at org.apache.tools.ant.taskdefs.CallTarget.execute(CallTarget.java:105)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292)
at jdk.internal.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:99)
at org.apache.tools.ant.Task.perform(Task.java:350)
at org.apache.tools.ant.Target.execute(Target.java:449)
at org.apache.tools.ant.Target.performTasks(Target.java:470)
at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1388)
at org.apache.tools.ant.helper.SingleCheckExecutor.executeTargets(SingleCheckExecutor.java:36)
at org.apache.tools.ant.Project.executeTargets(Project.java:1251)
at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:437)
at org.apache.tools.ant.taskdefs.CallTarget.execute(CallTarget.java:105)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292)
at jdk.internal.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:99)
at org.apache.tools.ant.Task.perform(Task.java:350)
at org.apache.tools.ant.Target.execute(Target.java:449)
at org.apache.tools.ant.Target.performTasks(Target.java:470)
at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1388)
at org.apache.tools.ant.Project.executeTarget(Project.java:1361)
at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
at org.apache.tools.ant.Project.executeTargets(Project.java:1251)
at org.apache.tools.ant.Main.runBuild(Main.java:834)
at org.apache.tools.ant.Main.startAnt(Main.java:223)
at org.apache.tools.ant.launch.Launcher.run(Launcher.java:284)
at org.apache.tools.ant.launch.Launcher.main(Launcher.java:101)
Caused by: java.io.IOException: Error while analyzing
project\bc\infra\commands\AbstractCommand.class.
at org.jacoco.core.analysis.Analyzer.analyzerError(Analyzer.java:170)
at org.jacoco.core.analysis.Analyzer.analyzeClass(Analyzer.java:142)
at org.jacoco.core.analysis.Analyzer.analyzeClass(Analyzer.java:165)
at org.jacoco.core.analysis.Analyzer.analyzeAll(Analyzer.java:201)
at org.jacoco.ant.ReportTask.createBundle(ReportTask.java:570)
at org.jacoco.ant.ReportTask.createReport(ReportTask.java:542)
at org.jacoco.ant.ReportTask.execute(ReportTask.java:495)
... 42 more
Caused by: java.lang.IllegalArgumentException
at org.objectweb.asm.ClassReader.<init>(Unknown Source)
at org.objectweb.asm.ClassReader.<init>(Unknown Source)
at org.jacoco.core.analysis.Analyzer.analyzeClass(Analyzer.java:118)
at org.jacoco.core.analysis.Analyzer.analyzeClass(Analyzer.java:140)
... 47 more
我检查了很多主题,但大多数问题都是关于检测的 class 但在这里我没有看到这个错误。有人知道如何解决吗? 如果您需要更多信息,请告诉我。
提前致谢。
Caused by: java.lang.IllegalArgumentException
at org.objectweb.asm.ClassReader.<init>(Unknown Source)
我在 ASM 库的堆栈跟踪中唯一知道的 Unknown Source
案例是使用不包含调试信息的 JAR,并且 were removed in ASM version 6.0。所以您可能使用的 ASM 版本 < 6.0.
但是根据堆栈跟踪中模块名称的存在
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
您正在使用 Java >= 9.
ASM 版本 < 6.0 无法处理 Java >= 9 类 并且在这种情况下恰好在 org.objectweb.asm.ClassReader.<init>
.
IllegalArgumentException
此外 JaCoCo 0.8.2 requires usage of ASM 6.2.1 并完全取决于此版本。
at org.jacoco.ant.ReportTask.execute(ReportTask.java:501)
对于 Ant,您必须使用 JaCoCo 发行版中的 lib/jacocoant.jar
而不是 lib/org.jacoco.ant-0.8.2.201808211720.jar
,因为第一个 包含所有必需的依赖项 ,而最后一个不包含。根据 https://www.jacoco.org/jacoco/trunk/doc/repo.html,它对应于来自 Maven 中央存储库的工件,其 groupId
是 org.jacoco
,artifactId
是 org.jacoco.ant
,最重要的是 classifier
是 nodeps
.