Home | History | Annotate | Download | only in org.jacoco.build
      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 (a] 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 (a] 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 (a] 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 (a] 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 (a] 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