blob: 4920baf544898765e9b7650d049ed7f1b8d00ce8 [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-memory</artifactId>
<version>1.0.0-incubating</version>
<name>${project.groupId}:${project.artifactId}</name>
<description>High-performance native memory access.</description>
<url>https://datasketches.apache.org/</url>
<inceptionYear>2015</inceptionYear>
<packaging>jar</packaging> <!-- jar is the default -->
<prerequisites>
<maven>3.0.4</maven>
</prerequisites>
<licenses>
<license>
<name>Apache License, Version 2.0</name>
<url>https://www.apache.org/licenses/LICENSE-2.0.txt</url>
<distribution>repo</distribution>
</license>
</licenses>
<scm>
<connection>scm:git:ssh://git@github.com/apache/incubator-datasketches-memory.git</connection>
<developerConnection>scm:git:ssh://git@github.com/apache/incubator-datasketches-memory.git</developerConnection>
<url>https://github.com/apache/incubator-datasketches-memory</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-datasketches-memory/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>DataSketches Commits</name>
<subscribe>commits-subscribe@datasketches.apache.org</subscribe>
<unsubscribe>commits-unsubscribe@datasketches.apache.org</unsubscribe>
<post>commits@datasketches.apache.org</post>
<archive>http://www.mail-archive.com/commits%datasketches.apache.org</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 -->
<testng.version>6.14.3</testng.version>
<slf4j-api.version>1.7.25</slf4j-api.version>
<protobuf-java.version>3.6.0</protobuf-java.version> <!-- Used for UTF8 testing -->
<zero-allocation-hashing.version>0.8</zero-allocation-hashing.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-jar-plugin.version>3.1.2</maven-jar-plugin.version>
<maven-gpg-plugin.version>1.6</maven-gpg-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 -->
<reproducible-build-maven-plugin.version>0.4</reproducible-build-maven-plugin.version>
<lifecycle-mapping.version>1.0.0</lifecycle-mapping.version>
<maven-remote-resources-plugin.version>[1.0,)</maven-remote-resources-plugin.version>
</properties>
<repositories>
<repository>
<id>apache.snapshots</id>
<name>Apache Snapshot Repository</name>
<url>https://repository.apache.org/content/groups/snapshots</url>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
<repository>
<id>apache</id>
<name>Apache Repository</name>
<url>https://repository.apache.org/content/repositories/releases/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${slf4j-api.version}</version>
</dependency>
<!-- Test Scope -->
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>${testng.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<!-- Used for UTF8 testing -->
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-java</artifactId>
<version>${protobuf-java.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<!-- Used for xxHash testing -->
<groupId>net.openhft</groupId>
<artifactId>zero-allocation-hashing</artifactId>
<version>${zero-allocation-hashing.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<!-- We want to deploy the artifacts to a staging location for perusal -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<!-- Apache Parent pom, apache-release profile -->
<!-- Druid: PM, Beam 2.4: release, Pinot: none, Dubbo: build -->
<configuration>
<updateReleaseInfo>true</updateReleaseInfo>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<!-- Apache Parent pom, pluginManagement-->
<!-- Druid: PM, Beam 2.4: PM, Pinot: PM, Dubbo: build -->
</plugin>
<plugin> <!-- extends the Parent -->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<!-- Apache Parent pom, pluginManagement-->
<!-- Druid: none, Beam 2.4: PM, Pinot: PM, Dubbo: build -->
<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>
<skipIfEmpty>true</skipIfEmpty>
</configuration>
</plugin>
<plugin> <!-- extends the Parent -->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<!-- Apache Parent pom, apache-release profile -->
<!-- Druid: PM, Beam 2.4: release profile, Pinot: build, reporting, Dubbo: release -->
<configuration>
<!--
<show>private</show>
-->
<stylesheetfile>src/main/javadoc/stylesheet.css</stylesheetfile>
<docfilessubdirs>true</docfilessubdirs>
</configuration>
<executions>
<execution>
<id>attach-javadocs</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.rat</groupId>
<artifactId>apache-rat-plugin</artifactId>
<!-- Apache Parent pom, pluginManagement-->
<!-- Druid: rat profile, Beam 2.4: release profile, Pinot: build, reporting, Dubbo: build -->
<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 -->
<exclude>**/test/resources/**/*.txt</exclude>
<!-- ignore licence files-->
<exclude>LICENSE</exclude>
<exclude>NOTICE</exclude>
<exclude>DISCLAIMER</exclude>
</excludes>
</configuration>
</plugin>
<plugin> <!-- extends parent -->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<!-- Apache Parent pom, apache-release profile -->
<!-- Druid: none, Beam 2.4: release profile, Pinot: PM, Dubbo: build -->
<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>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<!-- Apache Parent pom, pluginManagement-->
<!-- Druid: profiles: java9+, parallelTest, Beam 2.4: PM, Pinot: build, travis profile, Dubbo: build -->
<configuration>
<trimStackTrace>false</trimStackTrace>
<useManifestOnlyJar>false</useManifestOnlyJar>
<redirectTestOutputToFile>true</redirectTestOutputToFile>
</configuration>
</plugin>
<!-- Generates code coverage report from website. -->
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<!-- Druid: none; Beam 2.4: PM; Pinot: build; Dubbo: build -->
<version>${jacoco-maven-plugin.version}</version>
<executions>
<execution>
<id>prepare-agent</id>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- Submit code coverage report to Coveralls.io. -->
<plugin>
<groupId>org.eluder.coveralls</groupId>
<artifactId>coveralls-maven-plugin</artifactId>
<version>${coveralls-maven-plugin.version}</version>
<!-- Druid: build; Beam 2.4: PM; Pinot: none; Dubbo: none -->
<configuration>
<!-- Since we use Travis CI we do not have to put a Coveralls token here. -->
</configuration>
</plugin>
<plugin>
<groupId>io.github.zlika</groupId>
<artifactId>reproducible-build-maven-plugin</artifactId>
<version>${reproducible-build-maven-plugin.version}</version>
<!-- Druid: none; Beam 2.4: release profile; Pinot: none; Dubbo: none -->
<executions>
<execution>
<goals>
<goal>strip-jar</goal>
</goals>
</execution>
</executions>
</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
-->
<profile>
<id>m2e</id>
<!-- This profile is only active when the property "m2e.version"
is set, which is the case when building in Eclipse with m2e. -->
<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: tells m2eclipse to skip the execution. -->
<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 in parent -->
<configuration>
<source>${maven.compiler.source}</source>
<target>${maven.compiler.target}</target>
<compilerId>javac-with-errorprone</compilerId>
<forceJavacCompilerUse>true</forceJavacCompilerUse>
</configuration>
<dependencies>
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-compiler-javac-errorprone</artifactId>
<version>${plexus-compiler-javac-errorprone.version}</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</pluginManagement>
</build>
</profile>
<profile>
<id>sign</id>
<build>
<plugins>
<!-- We want to sign the artifacts, POM, and all attached artifacts -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<!-- Apache Parent pom, PM, apache-release profile -->
<!-- Druid: none; Beam 2.4: sign profile, Pinot: none, Dubbo: release profile -->
<version>${maven-gpg-plugin.version}</version>
<executions>
<execution>
<id>sign-release-artifacts</id>
<goals>
<goal>sign</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<!-- Disable source release assembly for 'apache-release' profile. -->
<profile>
<id>apache-release</id>
<build>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<executions>
<execution>
<id>source-release-assembly</id>
<phase>none</phase>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>