I solved this problem using the cobertura-it plugin. It extends the original cobertura plugin and allows you to use the target only for reporting. In addition, I have to run two separate commands (see below) to test and create reports (merging with 1 command does not work). Here is my plugin configuration.
<plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>cobertura-it-maven-plugin</artifactId> <version>2.5</version> <configuration> <formats> <format>html</format> </formats> <check> <haltOnFailure>false</haltOnFailure> </check> </configuration> <executions> <execution> <id>pre-integration-test</id> <phase>pre-integration-test</phase> <goals> <goal>cobertura</goal> </goals> </execution> </executions> </plugin> <plugin> <groupId>org.mortbay.jetty</groupId> <artifactId>jetty-maven-plugin</artifactId> <version>7.4.2.v20110526</version> <configuration> <stopKey>aaaaaaaaaaaaa</stopKey> <stopPort>8085</stopPort> </configuration> <executions> <execution> <id>start-jetty</id> <phase>pre-integration-test</phase> <goals> <goal>run</goal> </goals> <configuration> <scanIntervalSeconds>0</scanIntervalSeconds> <daemon>true</daemon> <classesDirectory>target/generated-classes/cobertura</classesDirectory> </configuration> </execution> <execution> <id>stop-jetty</id> <phase>post-integration-test</phase> <goals> <goal>stop</goal> </goals> </execution> </executions> <dependencies> <dependency> <groupId>net.sourceforge.cobertura</groupId> <artifactId>cobertura</artifactId> <version>1.9.4.1</version> </dependency> </dependencies> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-failsafe-plugin</artifactId> <version>2.10</version> <executions> <execution> <id>integration-test</id> <phase>integration-test</phase> <goals> <goal>integration-test</goal> </goals> </execution> <execution> <id>verify</id> <phase>verify</phase> <goals> <goal>verify</goal> </goals> </execution> </executions> </plugin>
So I run this: mvn clean verify
Note that there are several cobertura messages after stopping Jetty:
[INFO] ------------------------------------------------------- [INFO] BUILD SUCCESSFUL [INFO] ------------------------------------------------------- [INFO] Total time: 1 minute 13 seconds [INFO] Finished at: Sun Nov 13 12:58:29 ICT 2011 [INFO] Final Memory: 86M/204M [INFO] ------------------------------------------------------- 2011-11-13 12:58:29.765:WARN::4 threads could not be stopped Flushing results... Flushing results done Cobertura: Loaded information on 342 classes. Cobertura: Saved information on 342 classes.
Finally, I use mvn site to create reports. Here is the configuration of my report
<reporting> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-report-plugin</artifactId> <version>2.7</version> <configuration> <reportsDirectories> <reportsDirectory>${project.build.directory}/surefire-reports</reportsDirectory> <reportsDirectory>${project.build.directory}/failsafe-reports</reportsDirectory> </reportsDirectories> </configuration> <reportSets> <reportSet> <reports> <report>report-only</report> </reports> </reportSet> </reportSets> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-project-info-reports-plugin</artifactId> <version>2.1</version> <configuration> <dependencyLocationsEnabled>false</dependencyLocationsEnabled> </configuration> <reportSets> <reportSet> <reports> <report>dependencies</report> </reports> </reportSet> </reportSets> </plugin> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>cobertura-it-maven-plugin</artifactId> <configuration> <formats> <format>html</format> <format>xml</format> </formats> </configuration> <reportSets> <reportSet> <reports> <report>report-only</report> </reports> </reportSet> </reportSets> </plugin> </plugins> </reporting>
source share