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