Code coverage can be a useful tool but how can you set it up to not be too much of a burden on your developers? Simple, follow the recipe below and let your CI do the heavy lifting!
Add the Jacoco plugin to your pluginManagement section.
<pluginManagement>
<plugins>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.8.1</version>
</plugin>
</plugins>
</pluginManagement>
Create a coverage profile and add it to your top level POM
<profiles>
<profile>
<id>coverage</id>
<build>
<plugins>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<inherited>true</inherited>
<executions>
<execution>
<id>default-prepare-agent</id>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
<execution>
<id>default-report</id>
<phase>prepare-package</phase>
<goals>
<goal>report</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<modules>
<module>coverage</module>
</modules>
</profile>
</profiles>
Create the coverage module with the coverage aggregate report and add the other modules as dependencies
<build>
<plugins>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<executions>
<execution>
<id>default-report-aggegrate</id>
<phase>prepare-package</phase>
<goals>
<goal>report-aggregate</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
Execute your Maven build with -P coverage and you can find the
aggregate coverage report in the coverage module.
Posted April 19th, 2018