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