xref: /aosp_15_r20/external/jacoco/org.jacoco.doc/docroot/doc/maven.html (revision 7e63c1270baf9bfa84f5b6aecf17bd0c1a75af94)
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> &gt;
16*7e63c127SSorin Basca  <a href="index.html" class="el_group">Documentation</a> &gt;
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&lt;plugin&gt;
92*7e63c127SSorin Basca  &lt;groupId&gt;org.jacoco&lt;/groupId&gt;
93*7e63c127SSorin Basca  &lt;artifactId&gt;jacoco-maven-plugin&lt;/artifactId&gt;
94*7e63c127SSorin Basca  &lt;version&gt;${project.version}&lt;/version&gt;
95*7e63c127SSorin Basca&lt;/plugin&gt;
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&lt;project&gt;
114*7e63c127SSorin Basca  &lt;reporting&gt;
115*7e63c127SSorin Basca    &lt;plugins&gt;
116*7e63c127SSorin Basca      &lt;plugin&gt;
117*7e63c127SSorin Basca        &lt;groupId&gt;org.jacoco&lt;/groupId&gt;
118*7e63c127SSorin Basca        &lt;artifactId&gt;jacoco-maven-plugin&lt;/artifactId&gt;
119*7e63c127SSorin Basca        &lt;reportSets&gt;
120*7e63c127SSorin Basca          &lt;reportSet&gt;
121*7e63c127SSorin Basca            &lt;reports&gt;
122*7e63c127SSorin Basca              &lt;!-- select non-aggregate reports --&gt;
123*7e63c127SSorin Basca              &lt;report&gt;report&lt;/report&gt;
124*7e63c127SSorin Basca            &lt;/reports&gt;
125*7e63c127SSorin Basca          &lt;/reportSet&gt;
126*7e63c127SSorin Basca        &lt;/reportSets&gt;
127*7e63c127SSorin Basca      &lt;/plugin&gt;
128*7e63c127SSorin Basca    &lt;/plugins&gt;
129*7e63c127SSorin Basca  &lt;/reporting&gt;
130*7e63c127SSorin Basca&lt;/project&gt;
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> &copy; ${copyright.years} Mountainminds GmbH &amp; Co. KG and Contributors
157*7e63c127SSorin Basca</div>
158*7e63c127SSorin Basca
159*7e63c127SSorin Basca</body>
160*7e63c127SSorin Basca</html>
161