blob: 8036fb14a4b2618a0c834a84161890975be16ac1 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->
<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>
<parent>
<groupId>org.apache</groupId>
<artifactId>apache</artifactId>
<version>21</version>
</parent>
<groupId>org.apache.datasketches</groupId>
<artifactId>datasketches-pig</artifactId>
<version>1.0.0-incubating-SNAPSHOT</version>
<name>${project.artifactId}</name>
<description>Apache Pig adaptors the DataSketches library.</description>
<url>https://datasketches.apache.org/</url>
<inceptionYear>2015</inceptionYear>
<packaging>jar</packaging>
<!-- jar is the default -->
<!-- With the 3.6.1 version of Maven this causes a warning to obsolete this in
favor of using the enforcer plugin (which we do). But removing this
causes the command "mvn versions:display-plugin-updates" to issue an error
and not work properly. So this will stay for the time being.
-->
<prerequisites>
<maven>3.2.0</maven>
</prerequisites>
<licenses>
<license>
<name>Apache License, Version 2.0</name>
<url>https://www.apache.org/licenses/LICENSE-2.0</url>
<distribution>repo</distribution>
</license>
</licenses>
<scm>
<connection>scm:git:ssh://git@github.com/apache/incubator-${project.artifactId}.git</connection>
<developerConnection>scm:git:ssh://git@github.com/apache/incubator-${project.artifactId}.git</developerConnection>
<url>https://github.com/apache/incubator-${project.artifactId}</url>
<tag>HEAD</tag>
</scm>
<issueManagement>
<!-- <system>jira</system>
<url>https://issues.apache.org/jira/browse/DATASKETCHES</url> -->
<system>GitHub</system>
<url>https://github.com/apache/incubator-${project.artifactId}/issues</url>
</issueManagement>
<mailingLists>
<mailingList>
<name>DataSketches Developers</name>
<subscribe>dev-subscribe@datasketches.apache.org</subscribe>
<unsubscribe>dev-unsubscribe@datasketches.apache.org</unsubscribe>
<post>dev@datasketches.apache.org</post>
<archive>https://mail-archives.apache.org/mod_mbox/datasketches-dev</archive>
</mailingList>
<mailingList>
<name>sketches-user</name>
<archive>https://groups.google.com/forum/#!forum/sketches-user</archive>
<subscribe>mailto:sketches-user%2Bsubscribe@googlegroups.com</subscribe>
<unsubscribe>mailto:sketches-user%2Bunsubscribe@googlegroups.com</unsubscribe>
<post>mailto:sketches-user@googlegroups.com</post>
</mailingList>
</mailingLists>
<developers>
<developer>
<name>The Apache DataSketches Team</name>
<email>dev@datasketches.apache.org</email>
<url>https://datasketches.apache.org</url>
<organization>Apache Software Foundation</organization>
<organizationUrl>http://www.apache.org</organizationUrl>
</developer>
</developers>
<properties>
<!-- System-wide properties -->
<argLine>-Xmx4g -Duser.language=en -Duser.country=US -Dfile.encoding=UTF-8</argLine>
<charset.encoding>UTF-8</charset.encoding>
<project.build.sourceEncoding>${charset.encoding}</project.build.sourceEncoding>
<project.build.resourceEncoding>${charset.encoding}</project.build.resourceEncoding>
<project.reporting.outputEncoding>${charset.encoding}</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<maven.compiler.source>${java.version}</maven.compiler.source>
<maven.compiler.target>${java.version}</maven.compiler.target>
<!-- Dependencies -->
<datasketches-java.version>1.1.0-incubating</datasketches-java.version>
<pig.version>0.17.0</pig.version>
<hadoop-common.version>2.8.5</hadoop-common.version>
<hadoop-mapreduce-client-core.version>2.8.5</hadoop-mapreduce-client-core.version>
<hadoop-mapreduce-client-common.version>2.8.5</hadoop-mapreduce-client-common.version>
<commons-math3.version>3.6.1</commons-math3.version>
<testng.version>6.14.3</testng.version>
<slf4j-simple.version>1.7.27</slf4j-simple.version>
<!-- org.codehaus.plexus used for strict profile testing-->
<plexus-compiler-javac-errorprone.version>2.8.5</plexus-compiler-javac-errorprone.version>
<!-- Maven Plugins -->
<maven-assembly-plugin.version>3.1.1</maven-assembly-plugin.version>
<maven-compiler-plugin.version>3.8.1</maven-compiler-plugin.version>
<maven-deploy-plugin.version>3.0.0-M1</maven-deploy-plugin.version>
<maven-enforcer-plugin.version>3.0.0-M2</maven-enforcer-plugin.version>
<maven-gpg-plugin.version>1.6</maven-gpg-plugin.version>
<maven-jar-plugin.version>3.1.2</maven-jar-plugin.version>
<maven-javadoc-plugin.version>3.1.1</maven-javadoc-plugin.version>
<maven-release-plugin.version>2.5.3</maven-release-plugin.version>
<maven-remote-resources-plugin.version>[1.0,)</maven-remote-resources-plugin.version>
<maven-source-plugin.version>3.1.0</maven-source-plugin.version>
<maven-surefire-plugin.version>3.0.0-M3</maven-surefire-plugin.version>
<!-- Apache Plugins -->
<apache-rat-plugin.version>0.13</apache-rat-plugin.version>
<!-- org.jacoco Maven Plugins -->
<jacoco-maven-plugin.version>0.8.4</jacoco-maven-plugin.version>
<!-- org.eluder Maven Plugins -->
<coveralls-maven-plugin.version>4.3.0</coveralls-maven-plugin.version>
<!-- other -->
<lifecycle-mapping.version>1.0.0</lifecycle-mapping.version>
<git-commit-id-plugin.version>3.0.0</git-commit-id-plugin.version>
</properties>
<repositories>
<repository>
<id>apache.snapshots</id>
<name>Apache Snapshot Repository</name>
<url>https://repository.apache.org/content/groups/snapshots/org/apache/datasketches/</url>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
<repository>
<id>apache</id>
<name>Apache Releases Repository</name>
<url>https://repository.apache.org/content/repositories/releases/org/apache/datasketches/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
<dependencies>
<!-- datasketches-java -->
<dependency>
<groupId>org.apache.datasketches</groupId>
<artifactId>datasketches-java</artifactId>
<version>${datasketches-java.version}</version>
</dependency>
<!-- Pig Dependencies (provided scope) -->
<dependency>
<groupId>org.apache.pig</groupId>
<artifactId>pig</artifactId>
<version>${pig.version}</version>
<scope>provided</scope>
</dependency>
<!-- hadoop -->
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-common</artifactId>
<version>${hadoop-common.version}</version>
<scope>provided</scope>
<optional>true</optional>
<exclusions>
<exclusion>
<groupId>asm</groupId>
<artifactId>asm</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- For statistics. Used in p-value calculation. -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-math3</artifactId>
<version>${commons-math3.version}</version>
</dependency>
<!-- Test Scope -->
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>${testng.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<pluginManagement>
<plugins>
<plugin>
<!-- We want to deploy the artifacts to a staging location for perusal -->
<!-- Apache Parent pom: apache-release profile -->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<version>${maven-deploy-plugin.version}</version>
<configuration>
<updateReleaseInfo>true</updateReleaseInfo>
<!-- see maven-install-plugin -->
</configuration>
</plugin>
<plugin>
<!-- Apache Parent pom, pluginManagement-->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>${maven-release-plugin.version}</version>
</plugin>
<plugin>
<!-- Extends Apache Parent pom, pluginManagement-->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>${maven-jar-plugin.version}</version>
<executions>
<execution>
<id>default-jar</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
<execution>
<id>default-test-jar</id>
<goals>
<goal>test-jar</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<!-- Extends Apache Parent pom, apache-release profile -->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>${maven-javadoc-plugin.version}</version>
<configuration>
<docfilessubdirs>true</docfilessubdirs>
</configuration>
<executions>
<execution>
<id>attach-javadocs</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>${maven-enforcer-plugin.version}</version>
<executions>
<execution>
<id>enforce-banned-dependencies</id>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<requireJavaVersion>
<version>1.8.0</version>
</requireJavaVersion>
<requireMavenVersion>
<version>3.2,</version>
</requireMavenVersion>
<bannedDependencies>
<excludes>
<!--LGPL licenced library-->
<exclude>com.google.code.findbugs:annotations</exclude>
</excludes>
</bannedDependencies>
</rules>
<fail>true</fail>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<!-- Apache Parent pom, pluginManagement-->
<groupId>org.apache.rat</groupId>
<artifactId>apache-rat-plugin</artifactId>
<version>${apache-rat-plugin.version}</version>
<executions>
<execution>
<phase>verify</phase>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
<configuration>
<outputDirectory>${project.basedir}/rat</outputDirectory>
<consoleOutput>true</consoleOutput>
<useDefaultExcludes>true</useDefaultExcludes>
<excludes>
<!-- rat uses .gitignore for excludes by default -->
<exclude>**/test/resources/**/*.txt</exclude>
<exclude>LICENSE</exclude>
<exclude>NOTICE</exclude>
<exclude>DISCLAIMER-WIP</exclude>
</excludes>
</configuration>
</plugin>
<plugin>
<!-- Extends Apache Parent pom, apache-release profile -->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>${maven-source-plugin.version}</version>
<executions>
<execution>
<id>attach-sources</id>
<phase>package</phase>
<goals>
<goal>jar-no-fork</goal>
</goals>
</execution>
<execution>
<id>attach-test-sources</id>
<phase>package</phase>
<goals>
<goal>test-jar-no-fork</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<!-- Apache Parent pom, pluginManagement-->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>${maven-surefire-plugin.version}</version>
<configuration>
<trimStackTrace>false</trimStackTrace>
<useManifestOnlyJar>false</useManifestOnlyJar>
<redirectTestOutputToFile>true</redirectTestOutputToFile>
</configuration>
</plugin>
<plugin>
<!-- Generates code coverage report from website. -->
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>${jacoco-maven-plugin.version}</version>
<executions>
<execution>
<id>prepare-agent</id>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<!-- Submit code coverage report to Coveralls.io. -->
<groupId>org.eluder.coveralls</groupId>
<artifactId>coveralls-maven-plugin</artifactId>
<version>${coveralls-maven-plugin.version}</version>
<configuration>
<!-- Since we use Travis CI we do not have to put a Coveralls token here. -->
</configuration>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.rat</groupId>
<artifactId>apache-rat-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.eluder.coveralls</groupId>
<artifactId>coveralls-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
<profiles>
<!-- Ignore nuisance warning from Apache parent plugin:
"maven-remote-resources-plugin (goal "process") is ignored by m2e".
This also should fix the Maven warning that it can't find the lifecycle-mapping jar.
This profile is only active when the property "m2e.version" is set,
which is the case when building in Eclipse with m2e.
The ignore below tells m2eclipse to skip the execution.
-->
<profile>
<id>m2e</id>
<activation>
<property>
<name>m2e.version</name>
</property>
</activation>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.eclipse.m2e</groupId>
<artifactId>lifecycle-mapping</artifactId>
<version>${lifecycle-mapping.version}</version>
<configuration>
<lifecycleMappingMetadata>
<pluginExecutions>
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-remote-resources-plugin</artifactId>
<versionRange>${maven-remote-resources-plugin.version}</versionRange>
<goals>
<goal>process</goal>
</goals>
</pluginExecutionFilter>
<action>
<ignore/>
</action>
</pluginExecution>
</pluginExecutions>
</lifecycleMappingMetadata>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
</profile>
<profile>
<id>strict</id>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>${maven-compiler-plugin.version}</version>
<dependencies>
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-compiler-javac-errorprone</artifactId>
<version>${plexus-compiler-javac-errorprone.version}</version>
</dependency>
</dependencies>
<configuration>
<source>${maven.compiler.source}</source>
<target>${maven.compiler.target}</target>
<compilerId>javac-with-errorprone</compilerId>
<forceJavacCompilerUse>true</forceJavacCompilerUse>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
</profile>
<!-- This profile is used to release signed jars to the Apache Nexus repository.
This must be executed from a git repository set at the proper Release branch (e.g., 1.1.X-incubating)
and at a Release Candidate tag (e.g., 1.1.0-incubating-RC1).
The pom version in the release branch must be properly set to something like: "1.1.0-incubating".
The pom version in the master would be set to something like: "1.2.0-incubating-SNAPSHOT".
Test Command: mvn clean verify -Pnexus-jars -DskipTests=true
Command: mvn clean deploy -Dnexus-jars
Verify Command (from terminal): gpg -v &#45;&#45;verify $ASC $FILE # dashdashverify
-->
<profile>
<id>nexus-jars</id>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>pl.project13.maven</groupId>
<artifactId>git-commit-id-plugin</artifactId>
<version>${git-commit-id-plugin.version}</version>
<executions>
<execution>
<goals>
<goal>revision</goal>
</goals>
<phase>initialize</phase>
</execution>
</executions>
<configuration>
<dotGitDirectory>${project.basedir}/.git</dotGitDirectory>
<dateFormatTimeZone>UTC</dateFormatTimeZone>
<verbose>false</verbose>
<skipPoms>false</skipPoms>
<format>json</format>
<generateGitPropertiesFile>true</generateGitPropertiesFile>
<generateGitPropertiesFilename>${project.build.directory}/git.properties</generateGitPropertiesFilename>
<failOnNoGitDirectory>true</failOnNoGitDirectory>
<failOnUnableToExtractRepoInfo>true</failOnUnableToExtractRepoInfo>
<commitIdGenerationMode>full</commitIdGenerationMode>
<includeOnlyProperties>
<includeProperty>git.branch</includeProperty>
<includeProperty>git.commit.id.full</includeProperty>
<includeProperty>git.commit.time</includeProperty>
<includeProperty>git.commit.user.email</includeProperty>
<includeProperty>git.tags</includeProperty>
</includeOnlyProperties>
<gitDescribe>
<skip>false</skip>
<always>true</always>
<abbrev>7</abbrev>
<dirty>-dirty</dirty>
<tags>true</tags>
<forceLongFormat>true</forceLongFormat>
</gitDescribe>
</configuration>
</plugin>
<!-- Extends Apache Parent pom, pluginManagement-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>${maven-jar-plugin.version}</version>
<executions>
<execution>
<id>default-jar</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
<execution>
<id>default-test-jar</id>
<goals>
<goal>test-jar</goal>
</goals>
</execution>
</executions>
<configuration>
<injectAllReactorProjects>true</injectAllReactorProjects>
<archive>
<manifest>
<addDefaultEntries>false</addDefaultEntries>
<addDefaultSpecificationEntries>false</addDefaultSpecificationEntries>
<addDefaultImplementationEntries>false</addDefaultImplementationEntries>
</manifest>
<manifestEntries>
<Build-Jdk>${java.version} (${java.vendor} ${java.vm.version})</Build-Jdk>
<Build-OS>${os.name} ${os.arch} ${os.version}</Build-OS>
<Implementation-Vendor>The Apache Software Foundation</Implementation-Vendor>
<GroupId-ArtifactId>${project.groupId}:${project.artifactId}</GroupId-ArtifactId>
<git-branch>${git.branch}</git-branch>
<git-commit-id>${git.commit.id.full}</git-commit-id>
<git-commit-time>${git.commit.time}</git-commit-time>
<git-commit-user-email>${git.commit.user.email}</git-commit-user-email>
<git-commit-tag>${git.tags}</git-commit-tag>
</manifestEntries>
</archive>
</configuration>
</plugin>
<!-- We want to sign the artifacts, POM, and all attached artifacts -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<version>${maven-gpg-plugin.version}</version>
<executions>
<execution>
<id>sign-artifacts</id>
<phase>verify</phase>
<goals>
<goal>sign</goal>
</goals>
</execution>
</executions>
<configuration>
<gpgArguments>
<arg>--verbose</arg>
<!-- prints the algorithm used -->
<arg>--personal-digest-preferences=SHA512</arg>
</gpgArguments>
</configuration>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>pl.project13.maven</groupId>
<artifactId>git-commit-id-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
</plugin>
</plugins>
</build>
</profile>
<!-- Disable source release assembly for 'apache-release' profile.
This is performed from a script outside Maven
-->
<profile>
<id>apache-release</id>
<build>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>${maven-assembly-plugin.version}</version>
<executions>
<execution>
<id>source-release-assembly</id>
<phase>none</phase>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>