| <?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/xsd/maven-4.0.0.xsd"> |
| |
| <modelVersion>4.0.0</modelVersion> |
| |
| <parent> |
| <groupId>org.apache</groupId> |
| <artifactId>apache</artifactId> |
| <version>23</version> |
| <!-- Bypass resolution within source directory and resolve parent from remote repository instead --> |
| <relativePath /> |
| </parent> |
| |
| <!-- datasketches-memory assembly module |
| |
| NOTE: |
| This uses the Maven project-aggregation feature and does not inherit from the parent |
| so that there is no runtime dependency on the parent project (root module). |
| As a result, some properties from the root POM are duplicated here for inclusion in |
| the assembled artifacts. For more information, see: |
| https://maven.apache.org/guides/introduction/introduction-to-the-pom.html#Project_Aggregation --> |
| |
| <groupId>org.apache.datasketches</groupId> |
| <artifactId>datasketches-memory</artifactId> |
| <version>2.1.0</version> |
| |
| <name>${project.artifactId}</name> |
| <description>High-performance native memory access.</description> |
| <url>https://datasketches.apache.org/</url> |
| <inceptionYear>2015</inceptionYear> |
| |
| <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 Users</name> |
| <subscribe>user-subscribe@datasketches.apache.org</subscribe> |
| <unsubscribe>user-unsubscribe@datasketches.apache.org</unsubscribe> |
| <post>user@datasketches.apache.org</post> |
| <archive>https://mail-archives.apache.org/mod_mbox/datasketches-user</archive> |
| </mailingList> |
| </mailingLists> |
| |
| <scm> |
| <connection>scm:git:ssh://git@github.com/apache/${project.artifactId}.git</connection> |
| <developerConnection>scm:git:ssh://git@github.com/apache/${project.artifactId}.git</developerConnection> |
| <url>https://github.com/apache/${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/${project.artifactId}/issues</url> |
| </issueManagement> |
| |
| <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> |
| <!-- UNIQUE FOR THIS JAVA COMPONENT --> |
| <protobuf-java.version>4.0.0-rc-2</protobuf-java.version> |
| <!-- Used for UTF8 testing --> |
| <zero-allocation-hashing.version>0.15</zero-allocation-hashing.version> |
| <!-- END:UNIQUE FOR THIS JAVA COMPONENT --> |
| |
| <!-- Test --> |
| <testng.version>7.5</testng.version> |
| |
| <!-- System-wide properties --> |
| <maven.version>3.5.0</maven.version> |
| <java.version>1.8</java.version> |
| <maven.source.skip>true</maven.source.skip> |
| <maven.compiler.source>${java.version}</maven.compiler.source> |
| <maven.compiler.target>${java.version}</maven.compiler.target> |
| <!-- deploy artifacts to nexus from this module only --> |
| <maven.deploy.skip>false</maven.deploy.skip> |
| <maven.install.skip>false</maven.install.skip> |
| <maven.javadoc.skip>true</maven.javadoc.skip> |
| |
| <!-- Maven Plugins --> |
| <maven-assembly-plugin.version>3.3.0</maven-assembly-plugin.version> <!-- overrides parent --> |
| <maven-enforcer-plugin.version>3.0.0</maven-enforcer-plugin.version> <!-- overrides parent --> |
| <maven-gpg-plugin.version>3.0.1</maven-gpg-plugin.version> <!-- overrides parent --> |
| <maven-jar-plugin.version>3.2.0</maven-jar-plugin.version> <!-- overrides parent --> |
| <maven-remote-resources-plugin.version>1.7.0</maven-remote-resources-plugin.version> <!-- overrides parent --> |
| <!-- org.jacoco Maven Plugins --> |
| <jacoco-maven-plugin.version>0.8.6</jacoco-maven-plugin.version> |
| <!-- git plugin --> |
| <git-commit-id-plugin.version>4.0.4</git-commit-id-plugin.version> |
| </properties> |
| |
| <dependencies> |
| <!-- These dependencies are required during assembly but not runtime --> |
| <dependency> |
| <groupId>org.apache.datasketches</groupId> |
| <artifactId>datasketches-memory-java8</artifactId> |
| <version>${project.version}</version> |
| <scope>provided</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.datasketches</groupId> |
| <artifactId>datasketches-memory-java11</artifactId> |
| <version>${project.version}</version> |
| <scope>provided</scope> |
| </dependency> |
| <!-- Test Scope --> |
| <dependency> |
| <groupId>org.apache.datasketches</groupId> |
| <artifactId>datasketches-memory-java8-tests</artifactId> |
| <version>${project.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> |
| <!-- END: UNIQUE FOR THIS JAVA COMPONENT --> |
| |
| </dependencies> |
| |
| <build> |
| <pluginManagement> |
| <plugins> |
| |
| <!-- The assembly plugin builds all artifacts for this project from the other modules |
| within the project. These modules are complementary and not standalone. Therefore, |
| they are not installed and downloaded independently by the end user. |
| Instead, the maven-assembly plugin builds all jars, and hides the multi-module |
| configuration from the end user. --> |
| <plugin> |
| <artifactId>maven-assembly-plugin</artifactId> |
| <version>${maven-assembly-plugin.version}</version> |
| <!--suppress MavenModelInspection --> |
| <configuration> |
| <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> |
| <!-- these properties are generated by the git-commit-id-plugin during initialize --> |
| <!--suppress UnresolvedMavenProperty --> |
| <git-branch>${git.branch}</git-branch> |
| <!--suppress UnresolvedMavenProperty --> |
| <git-commit-id>${git.commit.id.full}</git-commit-id> |
| <!--suppress UnresolvedMavenProperty --> |
| <git-commit-time>${git.commit.time}</git-commit-time> |
| <!--suppress UnresolvedMavenProperty --> |
| <git-commit-user-email>${git.commit.user.email}</git-commit-user-email> |
| <!--suppress UnresolvedMavenProperty --> |
| <git-commit-tag>${git.tags}</git-commit-tag> |
| </manifestEntries> |
| </archive> |
| </configuration> |
| <executions> |
| |
| <!-- multi-release (MR) jar --> |
| <execution> |
| <id>assemble-jar</id> |
| <phase>package</phase> |
| <goals> |
| <goal>single</goal> |
| </goals> |
| <configuration> |
| <appendAssemblyId>false</appendAssemblyId> |
| <attach>true</attach> |
| <descriptors> |
| <descriptor>src/assembly/assemble-mr-jar.xml</descriptor> |
| </descriptors> |
| <!-- The class loader requires this to be set in a multi-release JAR's manifest --> |
| <archive> |
| <manifestEntries> |
| <Multi-Release>true</Multi-Release> |
| </manifestEntries> |
| </archive> |
| </configuration> |
| </execution> |
| |
| <!-- sources, tests and javadocs jars --> |
| <execution> |
| <id>assemble-sources-tests-javadocs</id> |
| <phase>package</phase> |
| <goals> |
| <goal>single</goal> |
| </goals> |
| <configuration> |
| <appendAssemblyId>true</appendAssemblyId> |
| <attach>true</attach> |
| <descriptors> |
| <!-- tests jar --> |
| <descriptor>src/assembly/assemble-test-jar.xml</descriptor> |
| <!-- sources.jar --> |
| <descriptor>src/assembly/assemble-sources.xml</descriptor> |
| <!-- test-sources.jar --> |
| <descriptor>src/assembly/assemble-test-sources.xml</descriptor> |
| <!-- javadoc jar --> |
| <descriptor>src/assembly/assemble-javadoc.xml</descriptor> |
| </descriptors> |
| </configuration> |
| </execution> |
| |
| </executions> |
| </plugin> |
| |
| <plugin> |
| <!-- Generates aggregate code coverage report from website. |
| This applies across all Maven submodules. --> |
| <groupId>org.jacoco</groupId> |
| <artifactId>jacoco-maven-plugin</artifactId> |
| <version>${jacoco-maven-plugin.version}</version> |
| <executions> |
| <execution> |
| <id>default-report</id> |
| <phase>verify</phase> |
| <goals> |
| <goal>report-aggregate</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, 1.9),[8],[11,14),[17,18)</version> |
| </requireJavaVersion> |
| <requireMavenVersion> |
| <version>[${maven.version},)</version> |
| </requireMavenVersion> |
| <bannedDependencies> |
| <excludes> |
| <!--LGPL licensed library--> |
| <exclude>com.google.code.findbugs:annotations</exclude> |
| </excludes> |
| </bannedDependencies> |
| </rules> |
| <fail>true</fail> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| |
| <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> |
| <!-- Maven commands are sometimes run on the release artifact directly, which is not a Git repository --> |
| <failOnNoGitDirectory>false</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> |
| |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-jar-plugin</artifactId> |
| <version>${maven-jar-plugin.version}</version> |
| </plugin> |
| </plugins> |
| </pluginManagement> |
| |
| <plugins> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-assembly-plugin</artifactId> |
| </plugin> |
| <plugin> |
| <groupId>org.jacoco</groupId> |
| <artifactId>jacoco-maven-plugin</artifactId> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-enforcer-plugin</artifactId> |
| </plugin> |
| <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> |
| </plugins> |
| </build> |
| |
| <profiles> |
| |
| <!-- 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) |
| and at a Release Candidate tag (e.g., 1.1.0-RC1). |
| The pom version in the release branch must be properly set to something like: "1.1.0". |
| The pom version in the master would be set to something like: "1.2.0-SNAPSHOT". |
| Test Command: mvn clean verify -Pnexus-jars -DskipTests=true |
| Command: mvn clean deploy -Dnexus-jars |
| Verify Command (from terminal): gpg -v --verify $ASC $FILE # dashdashverify |
| --> |
| <profile> |
| <id>nexus-jars</id> |
| <build> |
| <pluginManagement> |
| <plugins> |
| <!-- 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-gpg-plugin</artifactId> |
| </plugin> |
| </plugins> |
| </build> |
| </profile> |
| |
| <profile> |
| <id>only-eclipse</id> |
| <activation> |
| <property> |
| <name>m2e.version</name> |
| </property> |
| </activation> |
| <build> |
| <pluginManagement> |
| <plugins> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-remote-resources-plugin</artifactId> |
| <version>${maven-remote-resources-plugin.version}</version> |
| <executions> |
| <execution> |
| <id>process-resource-bundles</id> |
| <phase>none</phase> |
| </execution> |
| </executions> |
| </plugin> |
| </plugins> |
| </pluginManagement> |
| |
| <plugins> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-remote-resources-plugin</artifactId> |
| </plugin> |
| </plugins> |
| </build> |
| </profile> |
| |
| </profiles> |
| |
| </project> |