1*7e63c127SSorin Basca<?xml version="1.0" encoding="UTF-8" ?> 2*7e63c127SSorin Basca<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 3*7e63c127SSorin Basca<html xmlns="http://www.w3.org/1999/xhtml" lang="en"> 4*7e63c127SSorin Basca<head> 5*7e63c127SSorin Basca <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 6*7e63c127SSorin Basca <link rel="stylesheet" href="resources/doc.css" charset="UTF-8" type="text/css" /> 7*7e63c127SSorin Basca <link rel="stylesheet" href="../coverage/jacoco-resources/prettify.css" charset="UTF-8" type="text/css" /> 8*7e63c127SSorin Basca <link rel="shortcut icon" href="resources/report.gif" type="image/gif" /> 9*7e63c127SSorin Basca <script type="text/javascript" src="../coverage/jacoco-resources/prettify.js"></script> 10*7e63c127SSorin Basca <title>JaCoCo - Maven Plug-in</title> 11*7e63c127SSorin Basca</head> 12*7e63c127SSorin Basca<body onload="prettyPrint()"> 13*7e63c127SSorin Basca 14*7e63c127SSorin Basca<div class="breadcrumb"> 15*7e63c127SSorin Basca <a href="../index.html" class="el_report">JaCoCo</a> > 16*7e63c127SSorin Basca <a href="index.html" class="el_group">Documentation</a> > 17*7e63c127SSorin Basca <span class="el_source">Maven Plug-in</span> 18*7e63c127SSorin Basca</div> 19*7e63c127SSorin Basca<div id="content"> 20*7e63c127SSorin Basca 21*7e63c127SSorin Basca<h1>Maven Plug-in</h1> 22*7e63c127SSorin Basca 23*7e63c127SSorin Basca<p> 24*7e63c127SSorin Basca The JaCoCo <a href="http://maven.apache.org/">Maven</a> plug-in provides the 25*7e63c127SSorin Basca JaCoCo runtime agent to your tests and allows basic report creation. 26*7e63c127SSorin Basca</p> 27*7e63c127SSorin Basca 28*7e63c127SSorin Basca<p class="hint"> 29*7e63c127SSorin Basca If you want to have line number information included in the coverage reports 30*7e63c127SSorin Basca or you want source code highlighting the class files of the test target must 31*7e63c127SSorin Basca be compiled with debug information. 32*7e63c127SSorin Basca</p> 33*7e63c127SSorin Basca 34*7e63c127SSorin Basca<p class="hint"> 35*7e63c127SSorin Basca When using the <tt>maven-surefire-plugin</tt> or <tt>maven-failsafe-plugin</tt> 36*7e63c127SSorin Basca you <b>must not</b> use a 37*7e63c127SSorin Basca <a href="http://maven.apache.org/surefire/maven-surefire-plugin/test-mojo.html#forkCount"> 38*7e63c127SSorin Basca <tt>forkCount</tt></a> of <tt>0</tt> or set the 39*7e63c127SSorin Basca <a href="http://maven.apache.org/surefire/maven-surefire-plugin/test-mojo.html#forkMode"> 40*7e63c127SSorin Basca <tt>forkMode</tt></a> to <tt>never</tt> as this would prevent the execution of 41*7e63c127SSorin Basca the tests with the <tt>javaagent</tt> set and no coverage would be recorded. 42*7e63c127SSorin Basca</p> 43*7e63c127SSorin Basca 44*7e63c127SSorin Basca<h2>Example</h2> 45*7e63c127SSorin Basca 46*7e63c127SSorin Basca<ul> 47*7e63c127SSorin Basca <li> 48*7e63c127SSorin Basca The JaCoCo distribution contains a simple example how code coverage 49*7e63c127SSorin Basca can be added to a Maven project.</li> 50*7e63c127SSorin Basca <li> 51*7e63c127SSorin Basca This <a href="examples/build/pom.xml">POM file</a> 52*7e63c127SSorin Basca for a JAR project runs JUnit tests under code coverage and creates a coverage 53*7e63c127SSorin Basca report (<tt>target/site/jacoco/index.html</tt>). 54*7e63c127SSorin Basca </li> 55*7e63c127SSorin Basca <li> 56*7e63c127SSorin Basca This <a href="examples/build/pom-it.xml">POM file</a> 57*7e63c127SSorin Basca for a JAR project runs unit tests and integration tests under code coverage 58*7e63c127SSorin Basca and creates two coverage reports, one for unit tests ( 59*7e63c127SSorin Basca <tt>target/site/jacoco/index.html</tt>) and one for integration tests ( 60*7e63c127SSorin Basca <tt>target/site/jacoco-it/index.html</tt>). 61*7e63c127SSorin Basca </li> 62*7e63c127SSorin Basca <li> 63*7e63c127SSorin Basca The complete example is located in the <code>./doc/examples/build</code> 64*7e63c127SSorin Basca folder of the distribution. 65*7e63c127SSorin Basca </li> 66*7e63c127SSorin Basca</ul> 67*7e63c127SSorin Basca 68*7e63c127SSorin Basca 69*7e63c127SSorin Basca<h2>Prerequisites</h2> 70*7e63c127SSorin Basca 71*7e63c127SSorin Basca<p> 72*7e63c127SSorin Basca The JaCoCo Maven plug-in requires 73*7e63c127SSorin Basca</p> 74*7e63c127SSorin Basca 75*7e63c127SSorin Basca<ul> 76*7e63c127SSorin Basca <li>Maven 3.0 or higher and</li> 77*7e63c127SSorin Basca <li>Java 1.5 or higher (for both, the Maven runtime and the test executor).</li> 78*7e63c127SSorin Basca</ul> 79*7e63c127SSorin Basca 80*7e63c127SSorin Basca 81*7e63c127SSorin Basca<h2>Usage</h2> 82*7e63c127SSorin Basca 83*7e63c127SSorin Basca<p> 84*7e63c127SSorin Basca The Maven plug-in can be included in your build with the following 85*7e63c127SSorin Basca declaration. Please check 86*7e63c127SSorin Basca <a href="http://search.maven.org/#search|ga|1|g%3Aorg.jacoco%20a%3Ajacoco-maven-plugin">here</a> 87*7e63c127SSorin Basca for the latest release version in the repository. 88*7e63c127SSorin Basca</p> 89*7e63c127SSorin Basca 90*7e63c127SSorin Basca<pre class="source lang-xml linenums"> 91*7e63c127SSorin Basca<plugin> 92*7e63c127SSorin Basca <groupId>org.jacoco</groupId> 93*7e63c127SSorin Basca <artifactId>jacoco-maven-plugin</artifactId> 94*7e63c127SSorin Basca <version>${project.version}</version> 95*7e63c127SSorin Basca</plugin> 96*7e63c127SSorin Basca</pre> 97*7e63c127SSorin Basca 98*7e63c127SSorin Basca<p> 99*7e63c127SSorin Basca To receive a full list of goals and available parameters you can use 100*7e63c127SSorin Basca <code>maven-help-plugin</code>: 101*7e63c127SSorin Basca</p> 102*7e63c127SSorin Basca<pre> 103*7e63c127SSorin Bascamvn help:describe -Dplugin=org.jacoco:jacoco-maven-plugin -Ddetail 104*7e63c127SSorin Basca</pre> 105*7e63c127SSorin Basca 106*7e63c127SSorin Basca<p> 107*7e63c127SSorin Basca Usage of plugin together with <tt>maven-site-plugin</tt> without 108*7e63c127SSorin Basca <a href="https://maven.apache.org/plugins/maven-site-plugin/examples/configuring-reports.html#Selecting_Reports_from_a_Plugin:_Configuring_Report_Sets">explicit selection of reports</a> 109*7e63c127SSorin Basca might lead to generation of redundant aggregate reports. 110*7e63c127SSorin Basca Specify <tt>reportSets</tt> explicitly to avoid this: 111*7e63c127SSorin Basca</p> 112*7e63c127SSorin Basca<pre class="source lang-xml linenums"> 113*7e63c127SSorin Basca<project> 114*7e63c127SSorin Basca <reporting> 115*7e63c127SSorin Basca <plugins> 116*7e63c127SSorin Basca <plugin> 117*7e63c127SSorin Basca <groupId>org.jacoco</groupId> 118*7e63c127SSorin Basca <artifactId>jacoco-maven-plugin</artifactId> 119*7e63c127SSorin Basca <reportSets> 120*7e63c127SSorin Basca <reportSet> 121*7e63c127SSorin Basca <reports> 122*7e63c127SSorin Basca <!-- select non-aggregate reports --> 123*7e63c127SSorin Basca <report>report</report> 124*7e63c127SSorin Basca </reports> 125*7e63c127SSorin Basca </reportSet> 126*7e63c127SSorin Basca </reportSets> 127*7e63c127SSorin Basca </plugin> 128*7e63c127SSorin Basca </plugins> 129*7e63c127SSorin Basca </reporting> 130*7e63c127SSorin Basca</project> 131*7e63c127SSorin Basca</pre> 132*7e63c127SSorin Basca 133*7e63c127SSorin Basca<h2>Goals</h2> 134*7e63c127SSorin Basca 135*7e63c127SSorin Basca<p> 136*7e63c127SSorin Basca The JaCoCo Maven plug-in defines the following goals: 137*7e63c127SSorin Basca</p> 138*7e63c127SSorin Basca 139*7e63c127SSorin Basca<ul> 140*7e63c127SSorin Basca <li><a href="help-mojo.html">help</a></li> 141*7e63c127SSorin Basca <li><a href="prepare-agent-mojo.html">prepare-agent</a></li> 142*7e63c127SSorin Basca <li><a href="prepare-agent-integration-mojo.html">prepare-agent-integration</a></li> 143*7e63c127SSorin Basca <li><a href="merge-mojo.html">merge</a></li> 144*7e63c127SSorin Basca <li><a href="report-mojo.html">report</a></li> 145*7e63c127SSorin Basca <li><a href="report-integration-mojo.html">report-integration</a></li> 146*7e63c127SSorin Basca <li><a href="report-aggregate-mojo.html">report-aggregate</a></li> 147*7e63c127SSorin Basca <li><a href="check-mojo.html">check</a></li> 148*7e63c127SSorin Basca <li><a href="dump-mojo.html">dump</a></li> 149*7e63c127SSorin Basca <li><a href="instrument-mojo.html">instrument</a></li> 150*7e63c127SSorin Basca <li><a href="restore-instrumented-classes-mojo.html">restore-instrumented-classes</a></li> 151*7e63c127SSorin Basca</ul> 152*7e63c127SSorin Basca 153*7e63c127SSorin Basca</div> 154*7e63c127SSorin Basca<div class="footer"> 155*7e63c127SSorin Basca <span class="right"><a href="${jacoco.home.url}">JaCoCo</a> ${qualified.bundle.version}</span> 156*7e63c127SSorin Basca <a href="license.html">Copyright</a> © ${copyright.years} Mountainminds GmbH & Co. KG and Contributors 157*7e63c127SSorin Basca</div> 158*7e63c127SSorin Basca 159*7e63c127SSorin Basca</body> 160*7e63c127SSorin Basca</html> 161