mavenmaven-3cobertura

What is the proper way to use Cobertura with Maven 3.0.2


I have been trying unsuccessfully for the last few days to run Cobertura 2.4 with Maven 3.0.2. We have a very large project with many modules (sub-projects). What I found is that documentation is basically non-existent or plain wrong. All tutorials I was able to find don't work with Maven 3.x (they build, but Cobertura either doesn't run or cannot generate the reports).

Has anyone here been able to make it work? Any useful tips/examples? Thanks.


Solution

  • I successfully integrated Cobertura in my projects with adding this:

      <build>
        <plugins>
          <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>cobertura-maven-plugin</artifactId>
            <version>2.4</version>
            <configuration>
              <instrumentation>
                <includes>
                  <include>foo/bar/**/*.class</include>
                </includes>
              </instrumentation>
            </configuration>
            <executions>
              <execution>
                <id>clean</id>
                <phase>pre-site</phase>
                <goals>
                  <goal>clean</goal>
                </goals>
              </execution>
              <execution>
                <id>instrument</id>
                <phase>site</phase>
                <goals>
                  <goal>instrument</goal>
                  <goal>cobertura</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
     
      <reporting>
        <plugins>
          <plugin>
            <!-- use mvn cobertura:cobertura to generate cobertura reports -->
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>cobertura-maven-plugin</artifactId>
            <version>2.4</version>
            <configuration>
              <formats>
                <format>html</format>
                <format>xml</format>
              </formats>
             </configuration>
          </plugin>
        </plugins>
      </reporting>
    

    If you run mvn cobertura:cobertura the reports will be generated in target\site\cobertura. See also maven cobertura plugin.


    Today I analyze projects with SonarQube. It has an easy installation step (if you are not interested in using an enterprise database) and also includes a code coverage analysis (using JaCoCo) among many other metrics.