<target>
<!-- Execute an ant task within maven -->
<echo message="Generating JaCoCo Reports"/>
<taskdef name="report" classname="org.jacoco.ant.ReportTask">
<classpath path="${basedir}/target/jacoco-jars/org.jacoco.ant.jar"/>
</taskdef>
<mkdir dir="${basedir}/target/coverage-report"/>
<report>
<executiondata>
<fileset dir="${build.directory.projecta}">
<include name="jacoco.exec"/>
</fileset>
<fileset dir="${build.directory.projectb}">
<include name="jacoco.exec"/>
</fileset>
<fileset dir="${build.directory.projectc}">
<include name="jacoco.exec"/>
</fileset>
<fileset dir="${build.directory.projectd}">
<include name="jacoco.exec"/>
</fileset>
<fileset dir="${build.directory.projecte}">
<include name="jacoco.exec"/>
</fileset>
<fileset dir="${build.directory.projectf}">
<include name="jacoco.exec"/>
</fileset>
</executiondata>
<structure name="jacoco-multi Coverage Project">
<group name="jacoco-multi">
<classfiles>
<fileset dir="${classes.directory.projecta}"/>
<fileset dir="${classes.directory.projectb}"/>
<fileset dir="${classes.directory.projectc}"/>
<fileset dir="${classes.directory.projectd}"/>
<fileset dir="${classes.directory.projecte}"/>
<fileset dir="${classes.directory.projectf}"/>
</classfiles>
<sourcefiles encoding="UTF-8">
<fileset dir="${sources.directory.projecta}"/>
<fileset dir="${sources.directory.projectb}"/>
<fileset dir="${sources.directory.projectc}"/>
<fileset dir="${sources.directory.projectd}"/>
<fileset dir="${sources.directory.projecte}"/>
<fileset dir="${sources.directory.projectf}"/>
</sourcefiles>
</group>
</structure>
<html destdir="${basedir}/target/coverage-report/html"/>
<xml destfile="${basedir}/target/coverage-report/coverage-report.xml"/>
<csv destfile="${basedir}/target/coverage-report/coverage-report.csv"/>
</report>
</target>
The problem is the resulting report says many of the classes have no unit test coverage when in fact they are fully unit tested.
Also I can't even get the Jacoco plugin to exclude certain folders of source files.
Perhaps there is a better way to configure Jacoco for multimodule projects to get one consolidated report?
So I don't know if the problem is with the approach I am using or if its with JDK17. It does report code coverage on a few of the classes just not on all of them.
Is there a definitive best approach for creating consolidated reports in multi-module Maven builds?
Thanks,
-David