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 - Build</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">Build</span> 18*7e63c127SSorin Basca</div> 19*7e63c127SSorin Basca<div id="content"> 20*7e63c127SSorin Basca 21*7e63c127SSorin Basca<h1>Build</h1> 22*7e63c127SSorin Basca 23*7e63c127SSorin Basca<p> 24*7e63c127SSorin Basca The JaCoCo build is based on <a href="http://maven.apache.org/">Maven</a> and 25*7e63c127SSorin Basca can be locally executed on every machine with a proper 26*7e63c127SSorin Basca <a href="environment.html">environment setup</a>. In particular you need at 27*7e63c127SSorin Basca least <a href="http://maven.apache.org/">Maven 3.3.9</a> and JDK 8 28*7e63c127SSorin Basca installations. Developers are encouraged to run the build before every commit 29*7e63c127SSorin Basca to ensure consistency of the source tree. 30*7e63c127SSorin Basca</p> 31*7e63c127SSorin Basca 32*7e63c127SSorin Basca 33*7e63c127SSorin Basca<h2>Running the Build</h2> 34*7e63c127SSorin Basca 35*7e63c127SSorin Basca<p> 36*7e63c127SSorin Basca The build can be started by executing the following command with 37*7e63c127SSorin Basca <code>./org.jacoco.build/</code> as the working directory: 38*7e63c127SSorin Basca</p> 39*7e63c127SSorin Basca 40*7e63c127SSorin Basca<pre> 41*7e63c127SSorin Basca mvn clean verify 42*7e63c127SSorin Basca</pre> 43*7e63c127SSorin Basca 44*7e63c127SSorin Basca<p> 45*7e63c127SSorin Basca Total build time is typically around 3 minutes, however first build might take 46*7e63c127SSorin Basca more time, because Maven should download plugins and dependencies. The 47*7e63c127SSorin Basca download ZIP will be created at the following location: 48*7e63c127SSorin Basca</p> 49*7e63c127SSorin Basca 50*7e63c127SSorin Basca<pre> 51*7e63c127SSorin Basca ./jacoco/target/jacoco-<i>x.y.z.qualifier</i>.zip 52*7e63c127SSorin Basca</pre> 53*7e63c127SSorin Basca 54*7e63c127SSorin Basca 55*7e63c127SSorin Basca<h2>Running Quick Build without Tests</h2> 56*7e63c127SSorin Basca 57*7e63c127SSorin Basca<p> 58*7e63c127SSorin Basca It is not recommended, however possible to the run build without any tests: 59*7e63c127SSorin Basca</p> 60*7e63c127SSorin Basca 61*7e63c127SSorin Basca<pre> 62*7e63c127SSorin Basca mvn clean verify -DskipTests 63*7e63c127SSorin Basca</pre> 64*7e63c127SSorin Basca 65*7e63c127SSorin Basca 66*7e63c127SSorin Basca<h2>Compilation and testing with different JDKs</h2> 67*7e63c127SSorin Basca 68*7e63c127SSorin Basca<p> 69*7e63c127SSorin Basca By default for compilation and execution of tests will be used JDK that runs 70*7e63c127SSorin Basca Maven. Alternatively you can use JDK from 71*7e63c127SSorin Basca <a href="http://maven.apache.org/guides/mini/guide-using-toolchains.html">Maven 72*7e63c127SSorin Basca Toolchains</a> by setting property <code>jdk.version</code>. 73*7e63c127SSorin Basca</p> 74*7e63c127SSorin Basca 75*7e63c127SSorin Basca<p> 76*7e63c127SSorin Basca Following table shows in which classfile version modules will be compiled to 77*7e63c127SSorin Basca depending on version of JDK (empty cells = no compilation possible): 78*7e63c127SSorin Basca</p> 79*7e63c127SSorin Basca 80*7e63c127SSorin Basca<table class="coverage"> 81*7e63c127SSorin Basca <thead> 82*7e63c127SSorin Basca <tr> 83*7e63c127SSorin Basca <td>Modules</td> 84*7e63c127SSorin Basca <td>JDK 5</td> 85*7e63c127SSorin Basca <td>JDK 6</td> 86*7e63c127SSorin Basca <td>JDK 7</td> 87*7e63c127SSorin Basca <td>JDK 8</td> 88*7e63c127SSorin Basca <td>JDK 9</td> 89*7e63c127SSorin Basca <td>JDK 10</td> 90*7e63c127SSorin Basca <td>JDK 11</td> 91*7e63c127SSorin Basca <td>JDK 12</td> 92*7e63c127SSorin Basca <td>JDK 13</td> 93*7e63c127SSorin Basca <td>JDK 14</td> 94*7e63c127SSorin Basca <td>JDK 15</td> 95*7e63c127SSorin Basca <td>JDK 16</td> 96*7e63c127SSorin Basca </tr> 97*7e63c127SSorin Basca </thead> 98*7e63c127SSorin Basca <tbody> 99*7e63c127SSorin Basca <tr> 100*7e63c127SSorin Basca <td>org.jacoco.core.test.validation.java14</td> 101*7e63c127SSorin Basca <td></td> 102*7e63c127SSorin Basca <td></td> 103*7e63c127SSorin Basca <td></td> 104*7e63c127SSorin Basca <td></td> 105*7e63c127SSorin Basca <td></td> 106*7e63c127SSorin Basca <td></td> 107*7e63c127SSorin Basca <td></td> 108*7e63c127SSorin Basca <td></td> 109*7e63c127SSorin Basca <td></td> 110*7e63c127SSorin Basca <td>14</td> 111*7e63c127SSorin Basca <td>14</td> 112*7e63c127SSorin Basca <td>14</td> 113*7e63c127SSorin Basca </tr> 114*7e63c127SSorin Basca <tr> 115*7e63c127SSorin Basca <td>org.jacoco.core.test.validation.java8</td> 116*7e63c127SSorin Basca <td></td> 117*7e63c127SSorin Basca <td></td> 118*7e63c127SSorin Basca <td></td> 119*7e63c127SSorin Basca <td>8</td> 120*7e63c127SSorin Basca <td>8</td> 121*7e63c127SSorin Basca <td>8</td> 122*7e63c127SSorin Basca <td>8</td> 123*7e63c127SSorin Basca <td>8</td> 124*7e63c127SSorin Basca <td>8</td> 125*7e63c127SSorin Basca <td>8</td> 126*7e63c127SSorin Basca <td>8</td> 127*7e63c127SSorin Basca <td>8</td> 128*7e63c127SSorin Basca </tr> 129*7e63c127SSorin Basca <tr> 130*7e63c127SSorin Basca <td>org.jacoco.core.test.validation.java7</td> 131*7e63c127SSorin Basca <td></td> 132*7e63c127SSorin Basca <td></td> 133*7e63c127SSorin Basca <td>7</td> 134*7e63c127SSorin Basca <td>7</td> 135*7e63c127SSorin Basca <td>7</td> 136*7e63c127SSorin Basca <td>7</td> 137*7e63c127SSorin Basca <td>7</td> 138*7e63c127SSorin Basca <td>7</td> 139*7e63c127SSorin Basca <td>7</td> 140*7e63c127SSorin Basca <td>7</td> 141*7e63c127SSorin Basca <td>7</td> 142*7e63c127SSorin Basca <td>7</td> 143*7e63c127SSorin Basca </tr> 144*7e63c127SSorin Basca <tr> 145*7e63c127SSorin Basca <td>org.jacoco.core.test.validation.groovy</td> 146*7e63c127SSorin Basca <td></td> 147*7e63c127SSorin Basca <td></td> 148*7e63c127SSorin Basca <td></td> 149*7e63c127SSorin Basca <td>8</td> 150*7e63c127SSorin Basca <td>8</td> 151*7e63c127SSorin Basca <td>8</td> 152*7e63c127SSorin Basca <td>8</td> 153*7e63c127SSorin Basca <td>8</td> 154*7e63c127SSorin Basca <td>8</td> 155*7e63c127SSorin Basca <td>8</td> 156*7e63c127SSorin Basca <td>8</td> 157*7e63c127SSorin Basca <td>8</td> 158*7e63c127SSorin Basca </tr> 159*7e63c127SSorin Basca <tr> 160*7e63c127SSorin Basca <td>org.jacoco.core.test.validation.kotlin</td> 161*7e63c127SSorin Basca <td></td> 162*7e63c127SSorin Basca <td>6</td> 163*7e63c127SSorin Basca <td>6</td> 164*7e63c127SSorin Basca <td>6</td> 165*7e63c127SSorin Basca <td>6</td> 166*7e63c127SSorin Basca <td>6</td> 167*7e63c127SSorin Basca <td>6</td> 168*7e63c127SSorin Basca <td>6</td> 169*7e63c127SSorin Basca <td>6</td> 170*7e63c127SSorin Basca <td>6</td> 171*7e63c127SSorin Basca <td>6</td> 172*7e63c127SSorin Basca <td>6</td> 173*7e63c127SSorin Basca </tr> 174*7e63c127SSorin Basca <tr> 175*7e63c127SSorin Basca <td>all other modules</td> 176*7e63c127SSorin Basca <td>5</td> 177*7e63c127SSorin Basca <td>5</td> 178*7e63c127SSorin Basca <td>5</td> 179*7e63c127SSorin Basca <td>5</td> 180*7e63c127SSorin Basca <td>6</td> 181*7e63c127SSorin Basca <td>6</td> 182*7e63c127SSorin Basca <td>6</td> 183*7e63c127SSorin Basca <td>7</td> 184*7e63c127SSorin Basca <td>7</td> 185*7e63c127SSorin Basca <td>7</td> 186*7e63c127SSorin Basca <td>7</td> 187*7e63c127SSorin Basca <td>7</td> 188*7e63c127SSorin Basca </tr> 189*7e63c127SSorin Basca </tbody> 190*7e63c127SSorin Basca</table> 191*7e63c127SSorin Basca 192*7e63c127SSorin Basca<p> 193*7e63c127SSorin Basca Alternatively you can specify bytecode version for all modules using property 194*7e63c127SSorin Basca <code>bytecode.version</code>. 195*7e63c127SSorin Basca</p> 196*7e63c127SSorin Basca 197*7e63c127SSorin Basca<p> 198*7e63c127SSorin Basca For example to use JDK 10 from Maven Toolchains and compile all modules 199*7e63c127SSorin Basca into bytecode version 53 (Java 9): 200*7e63c127SSorin Basca</p> 201*7e63c127SSorin Basca 202*7e63c127SSorin Basca<pre> 203*7e63c127SSorin Basca mvn clean verify -Djdk.version=10 -Dbytecode.version=9 204*7e63c127SSorin Basca</pre> 205*7e63c127SSorin Basca 206*7e63c127SSorin Basca<p> 207*7e63c127SSorin Basca Also Eclipse Compiler for Java can be used for compilation: 208*7e63c127SSorin Basca</p> 209*7e63c127SSorin Basca 210*7e63c127SSorin Basca<pre> 211*7e63c127SSorin Basca mvn clean verify -Decj 212*7e63c127SSorin Basca</pre> 213*7e63c127SSorin Basca 214*7e63c127SSorin Basca<p> 215*7e63c127SSorin Basca Combining these options JaCoCo is regularly tested with the following setups: 216*7e63c127SSorin Basca</p> 217*7e63c127SSorin Basca 218*7e63c127SSorin Basca<ul> 219*7e63c127SSorin Basca <li><code>mvn clean verify -Djdk.version=5 -Dbytecode.version=5</code></li> 220*7e63c127SSorin Basca <li><code>mvn clean verify -Djdk.version=6 -Dbytecode.version=6</code></li> 221*7e63c127SSorin Basca <li><code>mvn clean verify -Djdk.version=7 -Dbytecode.version=7</code></li> 222*7e63c127SSorin Basca <li><code>mvn clean verify -Djdk.version=8 -Dbytecode.version=8</code></li> 223*7e63c127SSorin Basca <li><code>mvn clean verify -Djdk.version=8 -Dbytecode.version=8 -Decj</code></li> 224*7e63c127SSorin Basca <li><code>mvn clean verify -Djdk.version=9 -Dbytecode.version=9</code></li> 225*7e63c127SSorin Basca <li><code>mvn clean verify -Djdk.version=10 -Dbytecode.version=10</code></li> 226*7e63c127SSorin Basca <li><code>mvn clean verify -Djdk.version=11 -Dbytecode.version=11</code></li> 227*7e63c127SSorin Basca <li><code>mvn clean verify -Djdk.version=12 -Dbytecode.version=12</code></li> 228*7e63c127SSorin Basca <li><code>mvn clean verify -Djdk.version=13 -Dbytecode.version=13</code></li> 229*7e63c127SSorin Basca <li><code>mvn clean verify -Djdk.version=14 -Dbytecode.version=14</code></li> 230*7e63c127SSorin Basca <li><code>mvn clean verify -Djdk.version=15 -Dbytecode.version=15</code></li> 231*7e63c127SSorin Basca <li><code>mvn clean verify -Djdk.version=16 -Dbytecode.version=16</code></li> 232*7e63c127SSorin Basca</ul> 233*7e63c127SSorin Basca 234*7e63c127SSorin Basca 235*7e63c127SSorin Basca</div> 236*7e63c127SSorin Basca<div class="footer"> 237*7e63c127SSorin Basca <span class="right"><a href="${jacoco.home.url}">JaCoCo</a> ${qualified.bundle.version}</span> 238*7e63c127SSorin Basca <a href="license.html">Copyright</a> © ${copyright.years} Mountainminds GmbH & Co. KG and Contributors 239*7e63c127SSorin Basca</div> 240*7e63c127SSorin Basca 241*7e63c127SSorin Basca</body> 242*7e63c127SSorin Basca</html> 243