I am using
- build.gradle.kts
- Jacoco: id(“org.barfuin.gradle.jacocolog”) version “3.1.0”
- Optics from Arrow library
Arrow library generates __OpticsKt
files that don’t have coverage in Jacoco. How to ignore them in the build.gradle.kts?
Answer
You need to add tasks.jacocoTestReport {
block:
tasks.jacocoTestReport {
classDirectories.setFrom(
sourceSets.main.get().output.asFileTree.matching {
exclude("**/*__Optics*.class")
},
)
}
How does it work?
It seems like Jacoco uses .class files to generate coverage. Check in your build folder for these files.

Here, you can see we have the .class
file, that we can exclude
in the jacocoTestReport
block with the correct glob format.