Hi all!

I'm using Jacoco 0.8.11 and I'm in the process of migrating my JDK11 
project to JDK17. 

Unfortunately, the coverage report no longer lists any visited classes as 
covered and the command line tells me

[ant:jacocoReport] Classes in bundle 'app' do not match with execution 
data. For report generation the same class files must be used as at runtime.

[ant:jacocoReport] Execution data for class 
my/company/package/DeliveryPreferenceMapper does not match.

[ant:jacocoReport] Execution data for class 
my/company/package/TransportListMapper does not match.

[ant:jacocoReport] Execution data for class 
my/company/package/AddressConsigneeMapper does not match.

I'm clueless here, because _everything_ is properly configured for JDK 17:

 

------------------------------------------------------------

Gradle 8.5

------------------------------------------------------------

Build time:   2023-11-29 14:08:57 UTC

Revision:     28aca86a7180baa17117e0e5ba01d8ea9feca598

Kotlin:       1.9.20

Groovy:       3.0.17

Ant:          Apache Ant(TM) version 1.10.13 compiled on January 4 2023

JVM:          17.0.9 (Eclipse Adoptium 17.0.9+9)

OS:           Mac OS X 14.1.1 aarch64


Then, on project level (it's an Android project)
def javaVersion = JavaVersion.VERSION_17
compileOptions {
sourceCompatibility javaVersion
targetCompatibility javaVersion
}

and finally, the output of `javap -v 
path/to/DeliveryPreferenceMapper.class` tells me

...

public interface path.to.DeliveryPreferenceMapper

  minor version: 0

  major version: 61

I.e. JDK17.

This is my JacocoReport task configuration:
tasks.register("create${variantName.capitalize()}Coverage", JacocoReport) {
dependsOn(tasks.named("compile${variantName.capitalize()}JavaWithJavac"))
group = "Reporting"
description = "Generate Jacoco coverage reports on the ${variantName
.capitalize()} build."

def fileFilter = [ /* snip */ ]

def javaTree = fileTree(layout.buildDirectory.dir("intermediates/javac/$
variantName/classes")) {
exclude(fileFilter)
}
def kotlinTree = fileTree(layout.buildDirectory.dir("tmp/kotlin-classes/$
variantName")) {
exclude(fileFilter)
}
additionalClassDirs.from = files(javaTree, kotlinTree)
executionData.from = files(layout.buildDirectory.file(
"outputs/unit_test_code_coverage/${taskFolder}/${testTaskName}.exec"))
def coverageSourceDirs = ["src/main/java",
"src/$variantName/java",
"src/$productFlavorName/java",
"src/$buildTypeName/java"]

sourceDirectories.setFrom(files(coverageSourceDirs))
additionalSourceDirs.setFrom(files(coverageSourceDirs))

reports {
csv.required = false
xml.required = true
xml.outputLocation = layout.buildDirectory.file(
'test-results/coverage/coverage.xml')
html.required = true
html.outputLocation = layout.buildDirectory.dir('jacocoHtml')
}
}

Any idea what I might doing wrong?

Thanks!

-- 
You received this message because you are subscribed to the Google Groups 
"JaCoCo and EclEmma Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jacoco/f5fdb6ec-50f8-4ea5-b833-8e5ef49342c1n%40googlegroups.com.

Reply via email to