• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1<?xml version="1.0" encoding="UTF-8"?>
2<!--
3   Copyright (c) 2009, 2019 Mountainminds GmbH & Co. KG and Contributors
4   All rights reserved. This program and the accompanying materials
5   are made available under the terms of the Eclipse Public License v1.0
6   which accompanies this distribution, and is available at
7   http://www.eclipse.org/legal/epl-v10.html
8
9   Contributors:
10      Evgeny Mandrikov - initial API and implementation
11-->
12<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
13  <modelVersion>4.0.0</modelVersion>
14
15  <groupId>org.jacoco</groupId>
16  <artifactId>org.jacoco.build</artifactId>
17  <version>0.8.4</version>
18  <packaging>pom</packaging>
19
20  <name>JaCoCo</name>
21  <description>JaCoCo - Java Code Coverage Library</description>
22  <url>http://jacoco.org</url>
23  <inceptionYear>2009</inceptionYear>
24  <organization>
25    <name>Mountainminds GmbH &amp; Co. KG</name>
26  </organization>
27  <licenses>
28    <license>
29      <name>Eclipse Public License v1.0</name>
30      <url>http://www.eclipse.org/legal/epl-v10.html</url>
31      <distribution>repo</distribution>
32    </license>
33  </licenses>
34
35  <developers>
36    <developer>
37      <id>mtnminds</id>
38      <name>Marc R. Hoffmann</name>
39      <email>hoffmann@mountainminds.com</email>
40      <timezone>+1</timezone>
41      <roles>
42        <role>Project Lead</role>
43      </roles>
44    </developer>
45    <developer>
46      <id>brock_j</id>
47      <name>Brock Janiczak</name>
48      <email>brockj@gmail.com</email>
49      <timezone>+10</timezone>
50      <roles>
51        <role>Developer</role>
52      </roles>
53    </developer>
54    <developer>
55      <id>mandrikov</id>
56      <name>Evgeny Mandrikov</name>
57      <email>mandrikov@gmail.com</email>
58      <url>http://godin.net.ru</url>
59      <organization>SonarSource</organization>
60      <organizationUrl>http://www.sonarsource.com</organizationUrl>
61      <timezone>+3</timezone>
62      <roles>
63        <role>Build and release manager</role>
64      </roles>
65    </developer>
66    <developer>
67      <id>mfriedenhagen</id>
68      <name>Mirko Friedenhagen</name>
69      <email>mfriedenhagen@gmail.com</email>
70      <timezone>+1</timezone>
71      <roles>
72        <role>Developer</role>
73      </roles>
74    </developer>
75  </developers>
76
77  <contributors>
78    <contributor>
79      <name>Radek Liba</name>
80    </contributor>
81    <contributor>
82      <name>Christoph Beck</name>
83    </contributor>
84  </contributors>
85
86  <modules>
87    <!-- Order is important: org.jacoco.agent.rt embeds into org.jacoco.agent and JaCoCo Agent used during tests -->
88    <module>../org.jacoco.core</module>
89    <module>../org.jacoco.report</module>
90    <module>../org.jacoco.agent.rt</module>
91    <module>../org.jacoco.agent</module>
92    <module>../org.jacoco.ant</module>
93    <module>../org.jacoco.cli</module>
94    <module>../org.jacoco.examples</module>
95    <module>../jacoco-maven-plugin</module>
96
97    <module>../org.jacoco.tests</module>
98
99    <module>../org.jacoco.doc</module>
100    <module>../jacoco</module>
101  </modules>
102
103  <scm>
104    <connection>scm:git:git://github.com/jacoco/jacoco.git</connection>
105    <developerConnection>scm:git:ssh://git@github.com:jacoco/jacoco.git</developerConnection>
106    <url>https://github.com/jacoco/jacoco</url>
107  </scm>
108  <issueManagement>
109    <system>GitHub</system>
110    <url>https://github.com/jacoco/jacoco/issues</url>
111  </issueManagement>
112  <distributionManagement>
113    <repository>
114      <id>sonatype-nexus-staging</id>
115      <name>Nexus Release Repository</name>
116      <url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
117    </repository>
118    <snapshotRepository>
119      <id>sonatype-nexus-snapshots</id>
120      <name>Sonatype Nexus Snapshots</name>
121      <url>${sonatypeOssDistMgmtSnapshotsUrl}</url>
122    </snapshotRepository>
123  </distributionManagement>
124
125  <properties>
126    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
127    <sonatypeOssDistMgmtSnapshotsUrl>https://oss.sonatype.org/content/repositories/snapshots/</sonatypeOssDistMgmtSnapshotsUrl>
128
129    <maven.build.timestamp.format>yyyyMMddhhmm</maven.build.timestamp.format>
130    <jacoco.home.url>http://www.jacoco.org/jacoco</jacoco.home.url>
131    <copyright.years>${project.inceptionYear}, 2019</copyright.years>
132
133    <bytecode.version>1.5</bytecode.version>
134    <maven.compiler.source>${bytecode.version}</maven.compiler.source>
135    <maven.compiler.target>${bytecode.version}</maven.compiler.target>
136
137    <jvm.args></jvm.args>
138    <argLine>${jvm.args}</argLine>
139
140    <!-- Dependencies versions -->
141    <asm.version>7.1</asm.version>
142    <ant.version>1.7.1</ant.version>
143    <args4j.version>2.0.28</args4j.version>
144    <junit.version>4.8.2</junit.version>
145
146    <!-- ================== -->
147    <!-- For SonarQube analysis -->
148    <!-- ================== -->
149    <sonar.jacoco.reportPath>../${project.artifactId}.test/target/jacoco.exec</sonar.jacoco.reportPath>
150    <sonar.surefire.reportsPath>../${project.artifactId}.test/target/surefire-reports/</sonar.surefire.reportsPath>
151
152    <!-- See http://jira.codehaus.org/browse/SONAR-2096 -->
153    <sonar.java.source>1.5</sonar.java.source>
154    <sonar.java.target>1.5</sonar.java.target>
155  </properties>
156
157  <dependencyManagement>
158    <dependencies>
159      <!-- Project dependencies -->
160      <dependency>
161        <groupId>${project.groupId}</groupId>
162        <artifactId>org.jacoco.core</artifactId>
163        <version>${project.version}</version>
164      </dependency>
165      <dependency>
166        <groupId>${project.groupId}</groupId>
167        <artifactId>org.jacoco.report</artifactId>
168        <version>${project.version}</version>
169      </dependency>
170      <dependency>
171        <groupId>${project.groupId}</groupId>
172        <artifactId>org.jacoco.agent</artifactId>
173        <version>${project.version}</version>
174      </dependency>
175      <dependency>
176        <groupId>${project.groupId}</groupId>
177        <artifactId>org.jacoco.agent</artifactId>
178        <classifier>runtime</classifier>
179        <version>${project.version}</version>
180      </dependency>
181      <dependency>
182        <groupId>${project.groupId}</groupId>
183        <artifactId>org.jacoco.agent.rt</artifactId>
184        <version>${project.version}</version>
185      </dependency>
186      <dependency>
187        <groupId>${project.groupId}</groupId>
188        <artifactId>org.jacoco.ant</artifactId>
189        <version>${project.version}</version>
190      </dependency>
191      <dependency>
192        <groupId>${project.groupId}</groupId>
193        <artifactId>org.jacoco.ant</artifactId>
194        <classifier>nodeps</classifier>
195        <version>${project.version}</version>
196      </dependency>
197      <dependency>
198        <groupId>${project.groupId}</groupId>
199        <artifactId>org.jacoco.cli</artifactId>
200        <version>${project.version}</version>
201      </dependency>
202      <dependency>
203        <groupId>${project.groupId}</groupId>
204        <artifactId>org.jacoco.examples</artifactId>
205        <version>${project.version}</version>
206      </dependency>
207      <!-- Third-party dependencies -->
208      <dependency>
209        <groupId>org.ow2.asm</groupId>
210        <artifactId>asm</artifactId>
211        <version>${asm.version}</version>
212      </dependency>
213      <dependency>
214        <groupId>org.ow2.asm</groupId>
215        <artifactId>asm-commons</artifactId>
216        <version>${asm.version}</version>
217      </dependency>
218      <dependency>
219        <groupId>org.ow2.asm</groupId>
220        <artifactId>asm-tree</artifactId>
221        <version>${asm.version}</version>
222      </dependency>
223      <dependency>
224        <groupId>org.ow2.asm</groupId>
225        <artifactId>asm-analysis</artifactId>
226        <version>${asm.version}</version>
227      </dependency>
228      <dependency>
229        <groupId>org.ow2.asm</groupId>
230        <artifactId>asm-util</artifactId>
231        <version>${asm.version}</version>
232      </dependency>
233      <dependency>
234        <groupId>org.apache.ant</groupId>
235        <artifactId>ant</artifactId>
236        <version>${ant.version}</version>
237      </dependency>
238      <dependency>
239        <groupId>org.apache.ant</groupId>
240        <artifactId>ant-junit</artifactId>
241        <version>${ant.version}</version>
242      </dependency>
243      <dependency>
244        <groupId>org.apache.ant</groupId>
245        <artifactId>ant-antunit</artifactId>
246        <version>1.2</version>
247      </dependency>
248      <dependency>
249        <groupId>args4j</groupId>
250        <artifactId>args4j</artifactId>
251        <version>${args4j.version}</version>
252      </dependency>
253      <dependency>
254        <groupId>junit</groupId>
255        <artifactId>junit</artifactId>
256        <version>${junit.version}</version>
257      </dependency>
258    </dependencies>
259  </dependencyManagement>
260
261  <build>
262    <resources>
263      <resource>
264        <directory>src</directory>
265        <filtering>false</filtering>
266        <excludes>
267          <exclude>**/*.java</exclude>
268          <exclude>**/*.kt</exclude>
269          <exclude>**/*.groovy</exclude>
270          <exclude>**/*.properties</exclude>
271        </excludes>
272      </resource>
273      <resource>
274        <directory>src</directory>
275        <filtering>true</filtering>
276        <includes>
277          <include>**/*.properties</include>
278        </includes>
279      </resource>
280      <resource>
281        <directory>.</directory>
282        <filtering>true</filtering>
283        <includes>
284          <include>about.html</include>
285        </includes>
286      </resource>
287    </resources>
288
289    <pluginManagement>
290      <plugins>
291        <!-- Apache plugins -->
292        <plugin>
293          <groupId>org.apache.maven.plugins</groupId>
294          <artifactId>maven-antrun-plugin</artifactId>
295          <version>1.6</version>
296        </plugin>
297        <plugin>
298          <groupId>org.apache.maven.plugins</groupId>
299          <artifactId>maven-assembly-plugin</artifactId>
300          <version>2.2.1</version>
301        </plugin>
302        <plugin>
303          <groupId>org.apache.maven.plugins</groupId>
304          <artifactId>maven-clean-plugin</artifactId>
305          <version>2.4.1</version>
306        </plugin>
307        <plugin>
308          <groupId>org.apache.maven.plugins</groupId>
309          <artifactId>maven-compiler-plugin</artifactId>
310          <version>3.7.0</version>
311        </plugin>
312        <plugin>
313          <groupId>org.apache.maven.plugins</groupId>
314          <artifactId>maven-dependency-plugin</artifactId>
315          <version>2.2</version>
316        </plugin>
317        <plugin>
318          <groupId>org.apache.maven.plugins</groupId>
319          <artifactId>maven-deploy-plugin</artifactId>
320          <version>2.8.2</version>
321        </plugin>
322        <plugin>
323          <groupId>org.apache.maven.plugins</groupId>
324          <artifactId>maven-enforcer-plugin</artifactId>
325          <version>3.0.0-M2</version>
326        </plugin>
327        <plugin>
328          <groupId>org.apache.maven.plugins</groupId>
329          <artifactId>maven-install-plugin</artifactId>
330          <version>2.3.1</version>
331        </plugin>
332        <plugin>
333          <groupId>org.apache.maven.plugins</groupId>
334          <artifactId>maven-invoker-plugin</artifactId>
335          <version>2.0.0</version>
336        </plugin>
337        <plugin>
338          <groupId>org.apache.maven.plugins</groupId>
339          <artifactId>maven-gpg-plugin</artifactId>
340          <version>1.3</version>
341        </plugin>
342        <plugin>
343          <groupId>org.apache.maven.plugins</groupId>
344          <artifactId>maven-jar-plugin</artifactId>
345          <version>2.3.1</version>
346        </plugin>
347        <plugin>
348          <groupId>org.apache.maven.plugins</groupId>
349          <artifactId>maven-javadoc-plugin</artifactId>
350          <!--
351          Do not upgrade to 3.1.0 because it has troubles with "Automatic-Module-Name"
352          See https://issues.apache.org/jira/browse/MJAVADOC-588
353          -->
354          <version>3.0.1</version>
355          <configuration>
356            <quiet>true</quiet>
357            <detectOfflineLinks>false</detectOfflineLinks>
358          </configuration>
359        </plugin>
360        <plugin>
361          <groupId>org.apache.maven.plugins</groupId>
362          <artifactId>maven-plugin-plugin</artifactId>
363          <version>3.6.0</version>
364          <dependencies>
365            <dependency>
366              <!-- Workaround to be able to compile into Java 13 bytecode -->
367              <groupId>org.ow2.asm</groupId>
368              <artifactId>asm</artifactId>
369              <version>7.1</version>
370            </dependency>
371          </dependencies>
372        </plugin>
373        <plugin>
374          <groupId>org.apache.maven.plugins</groupId>
375          <artifactId>maven-release-plugin</artifactId>
376          <version>2.1</version>
377          <configuration>
378            <autoVersionSubmodules>true</autoVersionSubmodules>
379            <mavenExecutorId>forked-path</mavenExecutorId>
380            <useReleaseProfile>false</useReleaseProfile>
381            <!--
382            Allows to activate release profile during release.
383            We don't use releaseProfiles parameter, because it affects only release:perform goal
384            -->
385            <arguments>-Prelease</arguments>
386          </configuration>
387        </plugin>
388        <plugin>
389          <groupId>org.apache.maven.plugins</groupId>
390          <artifactId>maven-resources-plugin</artifactId>
391          <version>2.5</version>
392        </plugin>
393        <plugin>
394          <groupId>org.apache.maven.plugins</groupId>
395          <artifactId>maven-shade-plugin</artifactId>
396          <version>3.2.1</version>
397          <dependencies>
398            <dependency>
399              <!-- Workaround to be able to compile into Java 13 bytecode -->
400              <groupId>org.ow2.asm</groupId>
401              <artifactId>asm</artifactId>
402              <version>7.1</version>
403            </dependency>
404          </dependencies>
405        </plugin>
406        <plugin>
407          <groupId>org.apache.maven.plugins</groupId>
408          <artifactId>maven-source-plugin</artifactId>
409          <version>2.1.2</version>
410        </plugin>
411        <plugin>
412          <groupId>org.apache.maven.plugins</groupId>
413          <artifactId>maven-surefire-plugin</artifactId>
414          <version>2.9</version>
415        </plugin>
416        <plugin>
417          <groupId>org.apache.maven.plugins</groupId>
418          <artifactId>maven-site-plugin</artifactId>
419          <version>3.3</version>
420        </plugin>
421        <plugin>
422          <groupId>org.apache.maven.plugins</groupId>
423          <artifactId>maven-toolchains-plugin</artifactId>
424          <version>1.0</version>
425        </plugin>
426        <!-- Mojo plugins -->
427        <plugin>
428          <groupId>org.codehaus.mojo</groupId>
429          <artifactId>animal-sniffer-maven-plugin</artifactId>
430          <version>1.6</version>
431        </plugin>
432        <plugin>
433          <groupId>org.codehaus.mojo</groupId>
434          <artifactId>build-helper-maven-plugin</artifactId>
435          <version>1.5</version>
436        </plugin>
437        <plugin>
438          <groupId>org.codehaus.mojo</groupId>
439          <artifactId>buildnumber-maven-plugin</artifactId>
440          <version>1.2</version>
441        </plugin>
442        <plugin>
443          <groupId>org.codehaus.mojo</groupId>
444          <artifactId>xml-maven-plugin</artifactId>
445          <version>1.0</version>
446        </plugin>
447        <plugin>
448          <groupId>org.codehaus.mojo</groupId>
449          <artifactId>exec-maven-plugin</artifactId>
450          <!--  latest version which runs with Java 5 -->
451          <version>1.5.0</version>
452        </plugin>
453        <!-- Third-party plugins -->
454        <plugin>
455          <groupId>com.github.genthaler</groupId>
456          <artifactId>beanshell-maven-plugin</artifactId>
457          <version>1.4</version>
458        </plugin>
459        <plugin>
460          <groupId>org.apache.felix</groupId>
461          <artifactId>maven-bundle-plugin</artifactId>
462          <version>3.5.1</version>
463        </plugin>
464      </plugins>
465    </pluginManagement>
466
467    <plugins>
468      <plugin>
469        <groupId>org.apache.maven.plugins</groupId>
470        <artifactId>maven-surefire-plugin</artifactId>
471        <configuration>
472          <testSourceDirectory>${project.build.sourceDirectory}</testSourceDirectory>
473          <testClassesDirectory>${project.build.outputDirectory}</testClassesDirectory>
474        </configuration>
475      </plugin>
476
477      <plugin>
478        <groupId>org.apache.maven.plugins</groupId>
479        <artifactId>maven-resources-plugin</artifactId>
480        <configuration>
481          <!-- We can't use delimiters "${*}" and "$*$" together - probably it's bug in plugin -->
482          <!-- so for now we will define only our delimiters in compliance with https://sourceforge.net/apps/trac/eclemma/changeset/1229 -->
483          <!-- but it would be better to use defaults -->
484          <useDefaultDelimiters>false</useDefaultDelimiters>
485          <delimiters>
486            <delimiter>@*@</delimiter>
487            <delimiter>$*$</delimiter>
488          </delimiters>
489        </configuration>
490      </plugin>
491
492      <plugin>
493        <groupId>org.apache.maven.plugins</groupId>
494        <artifactId>maven-shade-plugin</artifactId>
495        <configuration>
496          <filters>
497            <!-- Don't include signatures -->
498            <filter>
499              <artifact>*:*</artifact>
500              <excludes>
501                <exclude>META-INF/*.SF</exclude>
502                <exclude>META-INF/*.DSA</exclude>
503                <exclude>META-INF/*.RSA</exclude>
504              </excludes>
505            </filter>
506          </filters>
507        </configuration>
508      </plugin>
509
510      <plugin>
511        <groupId>org.apache.maven.plugins</groupId>
512        <artifactId>maven-assembly-plugin</artifactId>
513        <configuration>
514          <archiverConfig>
515            <!-- Workaround for http://jira.codehaus.org/browse/MASSEMBLY-422 -->
516            <!-- 420(dec) = 644(oct) -->
517            <fileMode>420</fileMode>
518            <!-- 493(dec) = 755(oct) -->
519            <directoryMode>493</directoryMode>
520            <defaultDirectoryMode>493</defaultDirectoryMode>
521          </archiverConfig>
522        </configuration>
523      </plugin>
524
525      <plugin>
526        <groupId>org.apache.maven.plugins</groupId>
527        <artifactId>maven-enforcer-plugin</artifactId>
528        <executions>
529          <execution>
530            <id>enforce</id>
531            <phase>validate</phase>
532            <goals>
533              <goal>enforce</goal>
534            </goals>
535            <configuration>
536              <rules>
537                <requireJavaVersion>
538                  <version>1.8</version>
539                </requireJavaVersion>
540                <requireMavenVersion>
541                  <version>3.3.9</version>
542                </requireMavenVersion>
543                <requireNoRepositories>
544                  <message>The rules for repo1.maven.org are that pom.xml files should not include repository definitions.</message>
545                  <banRepositories>true</banRepositories>
546                  <banPluginRepositories>true</banPluginRepositories>
547                </requireNoRepositories>
548                <requireReleaseDeps>
549                  <message>No SNAPSHOT versions allowed for dependencies</message>
550                  <onlyWhenRelease>true</onlyWhenRelease>
551                </requireReleaseDeps>
552              </rules>
553            </configuration>
554          </execution>
555        </executions>
556      </plugin>
557
558      <plugin>
559        <groupId>org.apache.maven.plugins</groupId>
560        <artifactId>maven-antrun-plugin</artifactId>
561        <executions>
562          <execution>
563            <id>check-license-header</id>
564            <phase>validate</phase>
565            <goals>
566              <goal>run</goal>
567            </goals>
568            <configuration>
569              <target>
570                <fileset dir="${basedir}" includes="**/*.java,**/*.xml,**/*.bsh" excludes="target/**,.idea/**,nb-configuration.xml" id="missinglicense.fileset">
571                  <include name="**/*.kt"/>
572                  <include name="**/*.groovy"/>
573                  <not>
574                    <and>
575                      <contains text="Copyright (c) 2009, 2019 Mountainminds GmbH &amp; Co. KG and Contributors"/>
576                      <contains text="All rights reserved. This program and the accompanying materials"/>
577                      <contains text="are made available under the terms of the Eclipse Public License v1.0"/>
578                      <contains text="which accompanies this distribution, and is available at"/>
579                      <contains text="http://www.eclipse.org/legal/epl-v10.html"/>
580                    </and>
581                  </not>
582                </fileset>
583                <pathconvert property="missing" refid="missinglicense.fileset"/>
584                <fail message="Invalid license info in: ${missing}">
585                  <condition>
586                    <not>
587                      <equals arg1="${missing}" arg2=""/>
588                    </not>
589                  </condition>
590                </fail>
591              </target>
592            </configuration>
593          </execution>
594        </executions>
595      </plugin>
596
597      <plugin>
598        <groupId>org.codehaus.mojo</groupId>
599        <artifactId>build-helper-maven-plugin</artifactId>
600        <executions>
601          <execution>
602            <id>parse-version</id>
603            <phase>validate</phase>
604            <goals>
605              <goal>parse-version</goal>
606            </goals>
607          </execution>
608        </executions>
609      </plugin>
610
611      <plugin>
612        <groupId>org.codehaus.mojo</groupId>
613        <artifactId>buildnumber-maven-plugin</artifactId>
614        <executions>
615          <execution>
616            <phase>validate</phase>
617            <goals>
618              <goal>create</goal>
619            </goals>
620          </execution>
621        </executions>
622        <configuration>
623          <doCheck>false</doCheck>
624          <doUpdate>false</doUpdate>
625          <getRevisionOnlyOnce>true</getRevisionOnlyOnce>
626          <revisionOnScmFailure>0000000</revisionOnScmFailure>
627        </configuration>
628      </plugin>
629
630      <plugin>
631        <groupId>com.github.genthaler</groupId>
632        <artifactId>beanshell-maven-plugin</artifactId>
633        <executions>
634          <execution>
635            <id>parse-version</id>
636            <phase>validate</phase>
637            <goals>
638              <goal>run</goal>
639            </goals>
640            <configuration>
641              <quiet>true</quiet>
642              <script><![CDATA[
643                major = project.getProperties().get("parsedVersion.majorVersion");
644                minor = project.getProperties().get("parsedVersion.minorVersion");
645                incremental = project.getProperties().get("parsedVersion.incrementalVersion");
646                unqualifiedVersion = major + "." + minor + "." + incremental;
647                project.getProperties().setProperty("unqualifiedVersion", unqualifiedVersion);
648
649                qualifier = "${maven.build.timestamp}";
650                project.getProperties().setProperty("buildQualifier", qualifier);
651
652                qualifiedVersion = unqualifiedVersion + "." + qualifier;
653                project.getProperties().setProperty("qualified.bundle.version", qualifiedVersion);
654
655                buildDate = qualifier.substring(0, 4) + "/" + qualifier.substring(4, 6) + "/" + qualifier.substring(6, 8);
656                project.getProperties().setProperty("build.date", buildDate);
657
658                buildNumber = project.getProperties().get("buildNumber");
659                pkgName = buildNumber.substring(buildNumber.length() - 7, buildNumber.length());
660                project.getProperties().setProperty("jacoco.runtime.package.name", "org.jacoco.agent.rt.internal_" + pkgName);
661              ]]>
662              </script>
663            </configuration>
664          </execution>
665        </executions>
666      </plugin>
667
668      <plugin>
669        <groupId>org.apache.felix</groupId>
670        <artifactId>maven-bundle-plugin</artifactId>
671        <configuration>
672          <instructions>
673            <Automatic-Module-Name>${project.artifactId}</Automatic-Module-Name>
674            <Bundle-Version>${qualified.bundle.version}</Bundle-Version>
675            <Bundle-Name>${project.description}</Bundle-Name>
676            <Export-Package>
677              !about.html,
678              *.internal*;x-internal:=true;version="${version;===;${Bundle-Version}}",
679              *;version="${version;===;${Bundle-Version}}"
680            </Export-Package>
681            <Import-Package>
682              org.jacoco.*;version="${range;[===,==+);${Bundle-Version}}",
683              org.objectweb.asm.*;version="${range;[===,=+);${asm.version}}"
684            </Import-Package>
685            <Bundle-RequiredExecutionEnvironment>J2SE-1.5</Bundle-RequiredExecutionEnvironment>
686            <Eclipse-SourceReferences>scm:git:git://github.com/jacoco/jacoco.git;path="${project.artifactId}";commitId=${buildNumber}</Eclipse-SourceReferences>
687          </instructions>
688        </configuration>
689      </plugin>
690    </plugins>
691  </build>
692
693  <profiles>
694    <!-- http://openjdk.java.net/jeps/182 -->
695    <profile>
696      <id>maven-jdk9</id>
697      <activation>
698        <jdk>[9,12)</jdk>
699      </activation>
700      <properties>
701        <bytecode.version>6</bytecode.version>
702      </properties>
703    </profile>
704
705    <profile>
706      <id>maven-jdk12</id>
707      <activation>
708        <jdk>[12,)</jdk>
709      </activation>
710      <properties>
711        <bytecode.version>7</bytecode.version>
712      </properties>
713    </profile>
714
715    <!-- This profile enables use of JDK from Maven Toolchains -->
716    <profile>
717      <id>integration-tests</id>
718      <activation>
719        <property>
720          <name>jdk.version</name>
721        </property>
722      </activation>
723      <build>
724        <plugins>
725          <!-- See http://maven.apache.org/guides/mini/guide-using-toolchains.html -->
726          <plugin>
727            <groupId>org.apache.maven.plugins</groupId>
728            <artifactId>maven-toolchains-plugin</artifactId>
729            <executions>
730              <execution>
731                <phase>validate</phase>
732                <goals>
733                  <goal>toolchain</goal>
734                </goals>
735              </execution>
736            </executions>
737            <configuration>
738              <toolchains>
739                <jdk>
740                  <version>${jdk.version}</version>
741                </jdk>
742              </toolchains>
743            </configuration>
744          </plugin>
745        </plugins>
746      </build>
747    </profile>
748
749    <!-- This profile enables use of ECJ -->
750    <profile>
751      <id>ecj</id>
752      <activation>
753        <property>
754          <name>ecj</name>
755        </property>
756      </activation>
757      <build>
758        <plugins>
759          <plugin>
760            <groupId>org.apache.maven.plugins</groupId>
761            <artifactId>maven-compiler-plugin</artifactId>
762            <configuration>
763              <compilerId>eclipse</compilerId>
764              <source>1.8</source>
765              <target>1.8</target>
766            </configuration>
767            <dependencies>
768              <dependency>
769                <groupId>org.eclipse.jdt.core.compiler</groupId>
770                <artifactId>ecj</artifactId>
771                <version>4.6.1</version>
772              </dependency>
773              <dependency>
774                <groupId>org.codehaus.plexus</groupId>
775                <artifactId>plexus-compiler-eclipse</artifactId>
776                <version>2.8.1</version>
777              </dependency>
778            </dependencies>
779          </plugin>
780        </plugins>
781      </build>
782    </profile>
783
784    <!--
785    Profiles for different JDK versions:
786    -->
787
788    <profile>
789      <id>jdk6</id>
790      <activation>
791        <property>
792          <name>jdk.version</name>
793          <value>6</value>
794        </property>
795      </activation>
796      <properties>
797        <jvm.args>-XX:-FailOverToOldVerifier -Xverify:all</jvm.args>
798      </properties>
799    </profile>
800
801    <profile>
802      <id>jdk7</id>
803      <activation>
804        <property>
805          <name>jdk.version</name>
806          <value>7</value>
807        </property>
808      </activation>
809      <properties>
810        <jvm.args>-XX:-FailOverToOldVerifier -Xverify:all</jvm.args>
811      </properties>
812    </profile>
813
814    <profile>
815      <id>jdk8</id>
816      <activation>
817        <property>
818          <name>jdk.version</name>
819          <value>8</value>
820        </property>
821      </activation>
822      <properties>
823        <jvm.args>-XX:-FailOverToOldVerifier -Xverify:all</jvm.args>
824      </properties>
825    </profile>
826
827    <profile>
828      <id>jdk9</id>
829      <activation>
830        <property>
831          <name>jdk.version</name>
832          <value>9</value>
833        </property>
834      </activation>
835      <properties>
836        <bytecode.version>6</bytecode.version>
837      </properties>
838    </profile>
839
840    <profile>
841      <id>jdk10</id>
842      <activation>
843        <property>
844          <name>jdk.version</name>
845          <value>10</value>
846        </property>
847      </activation>
848      <properties>
849        <bytecode.version>6</bytecode.version>
850      </properties>
851    </profile>
852
853    <profile>
854      <id>jdk11</id>
855      <activation>
856        <property>
857          <name>jdk.version</name>
858          <value>11</value>
859        </property>
860      </activation>
861      <properties>
862        <bytecode.version>6</bytecode.version>
863      </properties>
864    </profile>
865
866    <profile>
867      <id>jdk12</id>
868      <activation>
869        <property>
870          <name>jdk.version</name>
871          <value>12</value>
872        </property>
873      </activation>
874      <properties>
875        <bytecode.version>7</bytecode.version>
876      </properties>
877    </profile>
878
879    <!-- This profile enables generation of JARs with sources and javadocs -->
880    <profile>
881      <id>sources</id>
882      <activation>
883        <file>
884          <exists>src/</exists>
885        </file>
886      </activation>
887      <build>
888        <plugins>
889          <!-- Generates jar with sources -->
890          <plugin>
891            <groupId>org.apache.maven.plugins</groupId>
892            <artifactId>maven-source-plugin</artifactId>
893            <executions>
894              <execution>
895                <id>attach-sources</id>
896                <phase>verify</phase>
897                <goals>
898                  <goal>jar-no-fork</goal>
899                </goals>
900              </execution>
901            </executions>
902          </plugin>
903          <!-- Generates Javadoc -->
904          <plugin>
905            <groupId>org.apache.maven.plugins</groupId>
906            <artifactId>maven-javadoc-plugin</artifactId>
907            <executions>
908              <execution>
909                <id>attach-javadocs</id>
910                <goals>
911                  <goal>jar</goal>
912                </goals>
913              </execution>
914            </executions>
915          </plugin>
916        </plugins>
917      </build>
918    </profile>
919
920    <!-- This profile is activated when a project is released. -->
921    <profile>
922      <id>release</id>
923      <build>
924        <plugins>
925          <plugin>
926            <groupId>org.apache.maven.plugins</groupId>
927            <artifactId>maven-enforcer-plugin</artifactId>
928            <inherited>false</inherited>
929            <executions>
930              <execution>
931                <id>enforce-release-rules</id>
932                <phase>verify</phase>
933                <goals>
934                  <goal>enforce</goal>
935                </goals>
936                <configuration>
937                  <rules>
938                    <requireReleaseVersion/>
939                    <requireProperty>
940                      <property>buildNumber</property>
941                      <regex>[0-9a-f]{40}</regex>
942                    </requireProperty>
943                  </rules>
944                </configuration>
945              </execution>
946            </executions>
947          </plugin>
948          <!-- Checks compatibility with Java API -->
949          <plugin>
950            <groupId>org.codehaus.mojo</groupId>
951            <artifactId>animal-sniffer-maven-plugin</artifactId>
952            <executions>
953              <execution>
954                <id>enforce-java-api-compatibility</id>
955                <phase>verify</phase>
956                <goals>
957                  <goal>check</goal>
958                </goals>
959                <configuration>
960                  <signature>
961                    <groupId>org.codehaus.mojo.signature</groupId>
962                    <artifactId>java15</artifactId>
963                    <version>1.0</version>
964                  </signature>
965                </configuration>
966              </execution>
967            </executions>
968          </plugin>
969          <!-- Signs artifacts -->
970          <plugin>
971            <groupId>org.apache.maven.plugins</groupId>
972            <artifactId>maven-gpg-plugin</artifactId>
973            <executions>
974              <execution>
975                <id>sign-artifacts</id>
976                <phase>verify</phase>
977                <goals>
978                  <goal>sign</goal>
979                </goals>
980              </execution>
981            </executions>
982          </plugin>
983        </plugins>
984      </build>
985    </profile>
986
987    <!-- This profile is active only when used from Eclipse m2e and is used only to store settings. -->
988    <profile>
989      <id>m2e</id>
990      <activation>
991        <property>
992          <name>m2e.version</name>
993        </property>
994      </activation>
995      <build>
996        <pluginManagement>
997          <plugins>
998            <!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.-->
999            <plugin>
1000              <groupId>org.eclipse.m2e</groupId>
1001              <artifactId>lifecycle-mapping</artifactId>
1002              <version>1.0.0</version>
1003              <configuration>
1004                <lifecycleMappingMetadata>
1005                  <pluginExecutions>
1006                    <pluginExecution>
1007                      <pluginExecutionFilter>
1008                        <groupId>org.apache.maven.plugins</groupId>
1009                        <artifactId>maven-antrun-plugin</artifactId>
1010                        <versionRange>[0,)</versionRange>
1011                        <goals>
1012                          <goal>run</goal>
1013                        </goals>
1014                      </pluginExecutionFilter>
1015                      <action>
1016                        <ignore></ignore>
1017                      </action>
1018                    </pluginExecution>
1019                    <pluginExecution>
1020                      <pluginExecutionFilter>
1021                        <groupId>org.apache.maven.plugins</groupId>
1022                        <artifactId>maven-invoker-plugin</artifactId>
1023                        <versionRange>[0,)</versionRange>
1024                        <goals>
1025                          <goal>install</goal>
1026                        </goals>
1027                      </pluginExecutionFilter>
1028                      <action>
1029                        <ignore></ignore>
1030                      </action>
1031                    </pluginExecution>
1032                    <pluginExecution>
1033                      <pluginExecutionFilter>
1034                        <groupId>org.apache.maven.plugins</groupId>
1035                        <artifactId>maven-dependency-plugin</artifactId>
1036                        <versionRange>[0,)</versionRange>
1037                        <goals>
1038                          <goal>unpack</goal>
1039                          <goal>copy-dependencies</goal>
1040                        </goals>
1041                      </pluginExecutionFilter>
1042                      <action>
1043                        <ignore></ignore>
1044                      </action>
1045                    </pluginExecution>
1046                    <pluginExecution>
1047                      <pluginExecutionFilter>
1048                        <groupId>org.codehaus.groovy.maven</groupId>
1049                        <artifactId>gmaven-plugin</artifactId>
1050                        <versionRange>[0,)</versionRange>
1051                        <goals>
1052                          <goal>execute</goal>
1053                        </goals>
1054                      </pluginExecutionFilter>
1055                      <action>
1056                        <ignore></ignore>
1057                      </action>
1058                    </pluginExecution>
1059                    <pluginExecution>
1060                      <pluginExecutionFilter>
1061                        <groupId>org.codehaus.mojo</groupId>
1062                        <artifactId>xml-maven-plugin</artifactId>
1063                        <versionRange>[0,)</versionRange>
1064                        <goals>
1065                          <goal>transform</goal>
1066                        </goals>
1067                      </pluginExecutionFilter>
1068                      <action>
1069                        <ignore></ignore>
1070                      </action>
1071                    </pluginExecution>
1072                    <pluginExecution>
1073                      <pluginExecutionFilter>
1074                        <groupId>org.jacoco</groupId>
1075                        <artifactId>jacoco-maven-plugin</artifactId>
1076                        <versionRange>[0,)</versionRange>
1077                        <goals>
1078                          <goal>prepare-agent</goal>
1079                        </goals>
1080                      </pluginExecutionFilter>
1081                      <action>
1082                        <ignore></ignore>
1083                      </action>
1084                    </pluginExecution>
1085                    <pluginExecution>
1086                      <pluginExecutionFilter>
1087                        <groupId>org.apache.maven.plugins</groupId>
1088                        <artifactId>maven-enforcer-plugin</artifactId>
1089                        <versionRange>[0,)</versionRange>
1090                        <goals>
1091                          <goal>enforce</goal>
1092                        </goals>
1093                      </pluginExecutionFilter>
1094                      <action>
1095                        <ignore></ignore>
1096                      </action>
1097                    </pluginExecution>
1098                    <pluginExecution>
1099                      <pluginExecutionFilter>
1100                        <groupId>org.codehaus.mojo</groupId>
1101                        <artifactId>build-helper-maven-plugin</artifactId>
1102                        <versionRange>[0,)</versionRange>
1103                        <goals>
1104                          <goal>parse-version</goal>
1105                        </goals>
1106                      </pluginExecutionFilter>
1107                      <action>
1108                        <ignore></ignore>
1109                      </action>
1110                    </pluginExecution>
1111                  </pluginExecutions>
1112                </lifecycleMappingMetadata>
1113              </configuration>
1114            </plugin>
1115          </plugins>
1116        </pluginManagement>
1117      </build>
1118    </profile>
1119  </profiles>
1120
1121</project>
1122