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