org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':code-coverage-report:codeCoverageReport'.
[...]
Caused by: java.io.IOException: Error while analyzing log4j-api-2.13.3.jar@org/apache/logging/log4j/util/ProcessIdUtil.class.
at org.jacoco.core.analysis.Analyzer.analyzerError(Analyzer.java:162)
at org.jacoco.core.analysis.Analyzer.analyzeClass(Analyzer.java:134)
at org.jacoco.core.analysis.Analyzer.analyzeClass(Analyzer.java:157)
at org.jacoco.core.analysis.Analyzer.analyzeAll(Analyzer.java:193)
at org.jacoco.core.analysis.Analyzer.analyzeZip(Analyzer.java:265)
at org.jacoco.core.analysis.Analyzer.analyzeAll(Analyzer.java:196)
at org.jacoco.ant.ReportTask.createBundle(ReportTask.java:573)
at org.jacoco.ant.ReportTask.createReport(ReportTask.java:545)
at org.jacoco.ant.ReportTask.execute(ReportTask.java:496)
... 251 more
Caused by: java.lang.IllegalStateException: Can't add different class with same name: org/apache/logging/log4j/util/ProcessIdUtil
at org.jacoco.core.analysis.CoverageBuilder.visitCoverage(CoverageBuilder.java:106)
at org.jacoco.core.analysis.Analyzer$1.visitEnd(Analyzer.java:99)
at org.objectweb.asm.ClassVisitor.visitEnd(ClassVisitor.java:378)
at org.jacoco.core.internal.flow.ClassProbesAdapter.visitEnd(ClassProbesAdapter.java:100)
at org.objectweb.asm.ClassReader.accept(ClassReader.java:722)
at org.objectweb.asm.ClassReader.accept(ClassReader.java:401)
at org.jacoco.core.analysis.Analyzer.analyzeClass(Analyzer.java:116)
at org.jacoco.core.analysis.Analyzer.analyzeClass(Analyzer.java:132)
... 258 more
Does anyone have any information on how to fix this error?
I’d suggest to use includes and excludes to compute coverage the actual source packages and ignore everything brought by the runtime environment (java, jakartaee, …) or third party dependencies:
tasks.withType(Test) {
jacoco {
includes 'org.mycompany.*', 'com.mycompany.*'
}
}
Hi @Pierre1 ,
thanks for the hint. Unfortunately, this gives me the following error
Caused by: org.gradle.internal.metaobject.AbstractDynamicObject$CustomMessageMissingMethodException: Could not find method includes() for arguments [org.mycompany., com.mycompany.] on extension ‘jacoco’ of type org.gradle.testing.jacoco.plugins.JacocoTaskExtension.
As I basically directly copied the example from here Reporting code coverage with JaCoCo Sample, do you think it is also something that should be adjusted in the example? I assume the combination of multi-project builds and Spring Boot is not that unusual?