blob: 0623059cd17f7b0e825452ef0d753ecf8784fe30 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (c) 2009, 2011 Mountainminds GmbH & Co. KG and Contributors
All rights reserved. This program and the accompanying materials
are made available under the terms of the Eclipse Public License v1.0
which accompanies this distribution, and is available at
http://www.eclipse.org/legal/epl-v10.html
Contributors:
Evgeny Mandrikov - initial API and implementation
-->
<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">
<modelVersion>4.0.0</modelVersion>
<groupId>org.jacoco</groupId>
<artifactId>org.jacoco.build</artifactId>
<version>0.5.3-SNAPSHOT</version>
<packaging>pom</packaging>
<name>JaCoCo</name>
<url>http://jacoco.org</url>
<inceptionYear>2009</inceptionYear>
<organization>
<name>Mountainminds GmbH &amp; Co. KG</name>
</organization>
<licenses>
<license>
<name>Eclipse Public License v1.0</name>
<url>http://www.eclipse.org/legal/epl-v10.html</url>
<distribution>repo</distribution>
</license>
</licenses>
<prerequisites>
<!-- Tycho works only with Maven 3.x -->
<maven>3.0</maven>
</prerequisites>
<developers>
<developer>
<id>mtnminds</id>
<name>Marc R. Hoffmann</name>
<roles>
<role>Project Lead</role>
</roles>
</developer>
<developer>
<id>brock_j</id>
<name>Brock Janiczak</name>
<email>brockj@gmail.com</email>
<timezone>+10</timezone>
<roles>
<role>Developer</role>
</roles>
</developer>
<developer>
<id>mandrikov</id>
<name>Evgeny Mandrikov</name>
<email>mandrikov@gmail.com</email>
<url>http://godin.net.ru</url>
<organization>SonarSource</organization>
<organizationUrl>http://www.sonarsource.com</organizationUrl>
<timezone>+3</timezone>
<roles>
<role>Build and release manager</role>
</roles>
</developer>
</developers>
<contributors>
<contributor>
<name>Radek Liba</name>
</contributor>
<contributor>
<name>Christoph Beck</name>
</contributor>
</contributors>
<modules>
<!-- Order is important: org.jacoco.agent.rt embeds into org.jacoco.agent and JaCoCo Agent used during tests -->
<module>../org.jacoco.core</module>
<module>../org.jacoco.report</module>
<module>../org.jacoco.agent.rt</module>
<module>../org.jacoco.agent</module>
<module>../org.jacoco.ant</module>
<module>../org.jacoco.ant-nodeps</module>
<module>../org.jacoco.core.test</module>
<module>../org.jacoco.report.test</module>
<module>../org.jacoco.agent.rt.test</module>
<module>../org.jacoco.agent.test</module>
<module>../org.jacoco.ant.test</module>
<module>../org.jacoco.examples</module>
<module>../org.jacoco.doc</module>
</modules>
<scm>
<connection>scm:svn:https://eclemma.svn.sourceforge.net/svnroot/eclemma/jacoco/trunk/org.jacoco.build</connection>
<developerConnection>scm:svn:https://eclemma.svn.sourceforge.net/svnroot/eclemma/jacoco/trunk/org.jacoco.build</developerConnection>
<url>https://eclemma.svn.sourceforge.net/svnroot/eclemma/jacoco/trunk/org.jacoco.build</url>
</scm>
<issueManagement>
<system>Trac</system>
<url>https://sourceforge.net/apps/trac/eclemma/</url>
</issueManagement>
<distributionManagement>
<repository>
<id>sonatype-nexus-staging</id>
<name>Nexus Release Repository</name>
<url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
</repository>
<snapshotRepository>
<id>sonatype-nexus-snapshots</id>
<name>Sonatype Nexus Snapshots</name>
<url>${sonatypeOssDistMgmtSnapshotsUrl}</url>
</snapshotRepository>
</distributionManagement>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<sonatypeOssDistMgmtSnapshotsUrl>https://oss.sonatype.org/content/repositories/snapshots/</sonatypeOssDistMgmtSnapshotsUrl>
<maven.build.timestamp.format>yyyy/MM/dd</maven.build.timestamp.format>
<build.date>${maven.build.timestamp}</build.date>
<jacoco.home.url>http://jacoco.org</jacoco.home.url>
<!-- This allows to use JaCoCo agent during execution of tests -->
<!-- Actually this is a dirty hack, but for now it's appropriate until we don't have jacoco-maven-plugin -->
<jvm.args></jvm.args>
<agent.path>${basedir}/../org.jacoco.agent.rt/target/org.jacoco.agent.rt-${project.version}-all.jar</agent.path>
<agent.exclclassloader>sun.reflect.DelegatingClassLoader:org.jacoco.core.test.TargetLoader</agent.exclclassloader>
<agent.opts>destfile=${project.build.directory}/jacoco.exec,sessionid=${project.artifactId},exclclassloader=${agent.exclclassloader}</agent.opts>
<argLine>-javaagent:${agent.path}=${agent.opts} ${jvm.args}</argLine>
<tycho.testArgLine>${argLine}</tycho.testArgLine>
<!-- Plugins versions -->
<tycho.version>0.11.1</tycho.version>
<!-- Dependencies versions -->
<asm.version>3.2</asm.version>
<ant.version>1.7.0</ant.version>
<junit.version>4.8.2</junit.version>
<!-- ================== -->
<!-- For Sonar analysis -->
<!-- ================== -->
<sonar.skippedModules>org.jacoco.core.test,org.jacoco.report.test,org.jacoco.agent.rt.test,org.jacoco.agent.test,org.jacoco.ant.test</sonar.skippedModules>
<!-- See http://jira.codehaus.org/browse/SONAR-2096 -->
<sonar.java.source>1.5</sonar.java.source>
<sonar.java.target>1.5</sonar.java.target>
</properties>
<dependencyManagement>
<dependencies>
<!-- Project dependencies -->
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>org.jacoco.core</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>org.jacoco.report</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>org.jacoco.agent</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>org.jacoco.agent.rt</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>org.jacoco.ant</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>org.jacoco.ant-nodeps</artifactId>
<version>${project.version}</version>
</dependency>
<!-- Third-party dependencies -->
<dependency>
<groupId>asm</groupId>
<artifactId>asm</artifactId>
<version>${asm.version}</version>
</dependency>
<dependency>
<groupId>asm</groupId>
<artifactId>asm-commons</artifactId>
<version>${asm.version}</version>
</dependency>
<dependency>
<groupId>org.apache.ant</groupId>
<artifactId>ant</artifactId>
<version>${ant.version}</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<resources>
<resource>
<directory>src</directory>
<filtering>false</filtering>
<excludes>
<exclude>**/*.java</exclude>
<exclude>**/*.properties</exclude>
</excludes>
</resource>
<resource>
<directory>src</directory>
<filtering>true</filtering>
<includes>
<include>**/*.properties</include>
</includes>
</resource>
<resource>
<directory>.</directory>
<filtering>true</filtering>
<includes>
<include>about.html</include>
</includes>
</resource>
</resources>
<pluginManagement>
<plugins>
<!-- Apache plugins -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.6</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.2</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-clean-plugin</artifactId>
<version>2.4.1</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.1</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.5</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>1.0</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-install-plugin</artifactId>
<version>2.3.1</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<version>1.1</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.3.1</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jarsigner-plugin</artifactId>
<version>1.2</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.7</version>
<configuration>
<quiet>true</quiet>
<detectOfflineLinks>false</detectOfflineLinks>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>2.1</version>
<configuration>
<tagBase>https://eclemma.svn.sourceforge.net/svnroot/eclemma/jacoco/tags</tagBase>
<autoVersionSubmodules>true</autoVersionSubmodules>
<mavenExecutorId>forked-path</mavenExecutorId>
<useReleaseProfile>false</useReleaseProfile>
<!--
Allows to activate release profile during release.
We don't use releaseProfiles parameter, because it affects only release:perform goal
-->
<arguments>-Prelease</arguments>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.4.3</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>1.4</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>2.1.2</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.7.1</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
<version>3.0-beta-3</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-toolchains-plugin</artifactId>
<version>1.0</version>
</plugin>
<!-- Sonatype plugins -->
<plugin>
<groupId>org.sonatype.tycho</groupId>
<artifactId>tycho-maven-plugin</artifactId>
<version>${tycho.version}</version>
</plugin>
<plugin>
<groupId>org.sonatype.tycho</groupId>
<artifactId>target-platform-configuration</artifactId>
<version>${tycho.version}</version>
</plugin>
<plugin>
<groupId>org.sonatype.tycho</groupId>
<artifactId>maven-osgi-source-plugin</artifactId>
<version>${tycho.version}</version>
</plugin>
<plugin>
<groupId>org.sonatype.tycho</groupId>
<artifactId>maven-osgi-compiler-plugin</artifactId>
<version>${tycho.version}</version>
</plugin>
<plugin>
<groupId>org.sonatype.tycho</groupId>
<artifactId>maven-osgi-test-plugin</artifactId>
<version>${tycho.version}</version>
</plugin>
<!-- Mojo plugins -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>animal-sniffer-maven-plugin</artifactId>
<version>1.6</version>
</plugin>
<!-- Third-party plugins -->
<plugin>
<groupId>org.codehaus.groovy.maven</groupId>
<artifactId>gmaven-plugin</artifactId>
<version>1.0</version>
</plugin>
<plugin>
<groupId>com.mycila.maven-license-plugin</groupId>
<artifactId>maven-license-plugin</artifactId>
<version>1.9.0</version>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>org.sonatype.tycho</groupId>
<artifactId>tycho-maven-plugin</artifactId>
<extensions>true</extensions>
</plugin>
<plugin>
<groupId>org.sonatype.tycho</groupId>
<artifactId>target-platform-configuration</artifactId>
<configuration>
<resolver>p2</resolver>
</configuration>
</plugin>
<plugin>
<groupId>org.sonatype.tycho</groupId>
<artifactId>maven-osgi-compiler-plugin</artifactId>
<configuration>
<excludeResources>
<excludeResource>**/*.properties</excludeResource>
</excludeResources>
</configuration>
</plugin>
<plugin>
<groupId>org.sonatype.tycho</groupId>
<artifactId>maven-osgi-test-plugin</artifactId>
<configuration>
<skipExec>${skipTests}</skipExec>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<testSourceDirectory>${project.build.sourceDirectory}</testSourceDirectory>
<testClassesDirectory>${project.build.outputDirectory}</testClassesDirectory>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<configuration>
<!-- We can't use delimiters "${*}" and "$*$" together - probably it's bug in plugin -->
<!-- so for now we will define only our delimiters in compliance with https://sourceforge.net/apps/trac/eclemma/changeset/1229 -->
<!-- but it would be better to use defaults -->
<useDefaultDelimiters>false</useDefaultDelimiters>
<delimiters>
<delimiter>@*@</delimiter>
<delimiter>$*$</delimiter>
</delimiters>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<configuration>
<filters>
<!-- Don't include signatures -->
<filter>
<artifact>*:*</artifact>
<excludes>
<exclude>META-INF/*.SF</exclude>
<exclude>META-INF/*.DSA</exclude>
<exclude>META-INF/*.RSA</exclude>
</excludes>
</filter>
</filters>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<manifestEntries>
<Implementation-Title>${project.description}</Implementation-Title>
<Implementation-Vendor>${project.organization.name}</Implementation-Vendor>
<Implementation-Version>${project.version}</Implementation-Version>
</manifestEntries>
</transformer>
</transformers>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<archiverConfig>
<!-- Workaround for http://jira.codehaus.org/browse/MASSEMBLY-422 -->
<!-- 420(dec) = 644(oct) -->
<fileMode>420</fileMode>
<!-- 493(dec) = 755(oct) -->
<directoryMode>493</directoryMode>
<defaultDirectoryMode>493</defaultDirectoryMode>
</archiverConfig>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<executions>
<execution>
<id>enforce</id>
<phase>validate</phase>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<requireNoRepositories>
<message>The rules for repo1.maven.org are that pom.xml files should not include repository definitions.</message>
<banRepositories>true</banRepositories>
<banPluginRepositories>true</banPluginRepositories>
</requireNoRepositories>
<requireReleaseDeps>
<message>No SNAPSHOT versions allowed for dependencies</message>
<onlyWhenRelease>true</onlyWhenRelease>
</requireReleaseDeps>
</rules>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>com.mycila.maven-license-plugin</groupId>
<artifactId>maven-license-plugin</artifactId>
<configuration>
<header>../org.jacoco.build/license-header.txt</header>
<properties>
<years>2009, 2010</years>
</properties>
<encoding>${project.build.sourceEncoding}</encoding>
<strictCheck>true</strictCheck>
<!-- TODO should be true - see https://sourceforge.net/apps/trac/eclemma/ticket/134 -->
<failIfMissing>false</failIfMissing>
<!-- TODO should be false - see https://sourceforge.net/apps/trac/eclemma/ticket/134 -->
<quiet>true</quiet>
<includes>
<include>src/**/*.java</include>
<include>src/**/*.xml</include>
</includes>
</configuration>
<executions>
<execution>
<id>enforce-license-headers</id>
<phase>validate</phase>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<profiles>
<!-- This profile is used to launch tests with different JDK versions. -->
<profile>
<id>integration-tests</id>
<activation>
<property>
<name>jdk.version</name>
</property>
</activation>
<build>
<plugins>
<!-- See http://maven.apache.org/guides/mini/guide-using-toolchains.html -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-toolchains-plugin</artifactId>
<executions>
<execution>
<phase>validate</phase>
<goals>
<goal>toolchain</goal>
</goals>
</execution>
</executions>
<configuration>
<toolchains>
<jdk>
<version>${jdk.version}</version>
</jdk>
</toolchains>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>jdk16</id>
<activation>
<property>
<name>jdk.version</name>
<value>1.6</value>
</property>
</activation>
<properties>
<jvm.args>-XX:-FailOverToOldVerifier -Xverify:all</jvm.args>
</properties>
</profile>
<profile>
<id>jdk17</id>
<activation>
<property>
<name>jdk.version</name>
<value>1.7</value>
</property>
</activation>
<properties>
<jvm.args>-XX:-FailOverToOldVerifier -Xverify:all</jvm.args>
</properties>
</profile>
<profile>
<id>sign</id>
<activation>
<property>
<name>jarsigner.alias</name>
</property>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jarsigner-plugin</artifactId>
<executions>
<execution>
<id>sign</id>
<goals>
<goal>sign</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>sources</id>
<activation>
<property>
<name>!skip-sources</name>
</property>
</activation>
<build>
<plugins>
<!-- Generates jar with sources -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<executions>
<execution>
<id>attach-sources</id>
<phase>verify</phase>
<goals>
<goal>jar-no-fork</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.sonatype.tycho</groupId>
<artifactId>maven-osgi-source-plugin</artifactId>
<executions>
<execution>
<id>attach-sources</id>
<goals>
<goal>plugin-source</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- Generates Javadoc -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<executions>
<execution>
<id>attach-javadocs</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<!-- This profile is activated when a project is released. -->
<profile>
<id>release</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<inherited>false</inherited>
<executions>
<execution>
<id>enforce-sign</id>
<phase>verify</phase>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<requireActiveProfile>
<message>You must sign JARs during release.</message>
<profiles>sign</profiles>
</requireActiveProfile>
</rules>
</configuration>
</execution>
</executions>
</plugin>
<!-- Checks compatibility with Java API -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>animal-sniffer-maven-plugin</artifactId>
<executions>
<execution>
<id>enforce-java-api-compatibility</id>
<phase>verify</phase>
<goals>
<goal>check</goal>
</goals>
<configuration>
<signature>
<groupId>org.codehaus.mojo.signature</groupId>
<artifactId>java15</artifactId>
<version>1.0</version>
</signature>
</configuration>
</execution>
</executions>
</plugin>
<!-- Signs artifacts -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<executions>
<execution>
<id>sign-artifacts</id>
<phase>verify</phase>
<goals>
<goal>sign</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<!-- This profile is activated only during build and allows to use p2 repository without bothering our consumers and in compliance with rules for repo1 -->
<profile>
<id>tycho</id>
<activation>
<file>
<!-- This employs that the basedir expression is only recognized by Maven 3.x (see MNG-2363) -->
<exists>${basedir}</exists>
</file>
</activation>
<repositories>
<repository>
<id>jacoco-thirdparty</id>
<layout>p2</layout>
<url>http://download.eclipse.org/releases/helios</url>
</repository>
</repositories>
</profile>
</profiles>
</project>