| <?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 https://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> | |
| </parent> | |
| <groupId>org.apache.paimon</groupId> | |
| <artifactId>paimon-vector-index-java</artifactId> | |
| <version>0.6.0-SNAPSHOT</version> | |
| <packaging>jar</packaging> | |
| <name>Apache Paimon Vector Index Java</name> | |
| <description>Vector index for Java (backed by Rust via JNI)</description> | |
| <url>https://paimon.apache.org</url> | |
| <inceptionYear>2026</inceptionYear> | |
| <licenses> | |
| <license> | |
| <name>The Apache Software License, Version 2.0</name> | |
| <url>https://www.apache.org/licenses/LICENSE-2.0.txt</url> | |
| <distribution>repo</distribution> | |
| </license> | |
| </licenses> | |
| <scm> | |
| <url>https://github.com/apache/paimon-vector-index</url> | |
| <connection>git@github.com:apache/paimon-vector-index.git</connection> | |
| <developerConnection>scm:git:https://gitbox.apache.org/repos/asf/paimon-vector-index.git</developerConnection> | |
| </scm> | |
| <developers> | |
| <developer> | |
| <name>Apache Paimon Contributors</name> | |
| <email>dev@paimon.apache.org</email> | |
| <organization>Apache Software Foundation</organization> | |
| <organizationUrl>https://www.apache.org</organizationUrl> | |
| </developer> | |
| </developers> | |
| <properties> | |
| <maven.compiler.source>8</maven.compiler.source> | |
| <maven.compiler.target>8</maven.compiler.target> | |
| <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> | |
| <!-- Used by maven-remote-resources-plugin when generating META-INF/NOTICE. --> | |
| <project.build.outputTimestamp>2026-01-01T00:00:00Z</project.build.outputTimestamp> | |
| <!-- Optional external JNI library path forwarded to forked test JVMs; | |
| empty means load the platform library bundled in resources. --> | |
| <paimon.vindex.native.path></paimon.vindex.native.path> | |
| </properties> | |
| <dependencies> | |
| <dependency> | |
| <groupId>org.slf4j</groupId> | |
| <artifactId>slf4j-api</artifactId> | |
| <version>1.7.36</version> | |
| <scope>provided</scope> | |
| </dependency> | |
| <dependency> | |
| <groupId>org.slf4j</groupId> | |
| <artifactId>slf4j-simple</artifactId> | |
| <version>1.7.36</version> | |
| <scope>test</scope> | |
| </dependency> | |
| </dependencies> | |
| <build> | |
| <resources> | |
| <resource> | |
| <directory>src/main/resources</directory> | |
| </resource> | |
| <resource> | |
| <directory>${project.basedir}/..</directory> | |
| <targetPath>META-INF</targetPath> | |
| <includes> | |
| <include>LICENSE-binary</include> | |
| </includes> | |
| </resource> | |
| </resources> | |
| <plugins> | |
| <plugin> | |
| <groupId>org.apache.maven.plugins</groupId> | |
| <artifactId>maven-compiler-plugin</artifactId> | |
| <version>3.13.0</version> | |
| <configuration> | |
| <source>${maven.compiler.source}</source> | |
| <target>${maven.compiler.target}</target> | |
| <encoding>${project.build.sourceEncoding}</encoding> | |
| </configuration> | |
| </plugin> | |
| <plugin> | |
| <groupId>org.codehaus.mojo</groupId> | |
| <artifactId>exec-maven-plugin</artifactId> | |
| <version>3.5.0</version> | |
| <executions> | |
| <execution> | |
| <id>java-api-test</id> | |
| <phase>test</phase> | |
| <goals> | |
| <goal>java</goal> | |
| </goals> | |
| <configuration> | |
| <mainClass>org.apache.paimon.index.vector.VectorIndexJavaApiTest</mainClass> | |
| <classpathScope>test</classpathScope> | |
| </configuration> | |
| </execution> | |
| <!-- Forked JVM (exec goal): the Rust timing gate reads the process | |
| environment, which the in-process java goal cannot set. --> | |
| <execution> | |
| <id>native-log-bridge-smoke-test</id> | |
| <phase>test</phase> | |
| <goals> | |
| <goal>exec</goal> | |
| </goals> | |
| <configuration> | |
| <skip>${skipTests}</skip> | |
| <executable>java</executable> | |
| <classpathScope>test</classpathScope> | |
| <environmentVariables> | |
| <PAIMON_VINDEX_LOG_IVFPQ_BATCH_TIMING>1</PAIMON_VINDEX_LOG_IVFPQ_BATCH_TIMING> | |
| </environmentVariables> | |
| <arguments> | |
| <argument>-Dvindex.smoke.require-timing=true</argument> | |
| <argument>-Dpaimon.vindex.native.path=${paimon.vindex.native.path}</argument> | |
| <argument>-classpath</argument> | |
| <classpath/> | |
| <argument>org.apache.paimon.index.vector.NativeLogBridgeSmokeTest</argument> | |
| </arguments> | |
| </configuration> | |
| </execution> | |
| </executions> | |
| </plugin> | |
| </plugins> | |
| </build> | |
| <profiles> | |
| <profile> | |
| <id>release</id> | |
| <build> | |
| <plugins> | |
| <plugin> | |
| <groupId>org.apache.maven.plugins</groupId> | |
| <artifactId>maven-gpg-plugin</artifactId> | |
| <version>3.2.8</version> | |
| <executions> | |
| <execution> | |
| <id>sign-artifacts</id> | |
| <phase>verify</phase> | |
| <goals> | |
| <goal>sign</goal> | |
| </goals> | |
| <configuration> | |
| <bestPractices>true</bestPractices> | |
| <gpgArguments> | |
| <arg>--pinentry-mode</arg> | |
| <arg>loopback</arg> | |
| </gpgArguments> | |
| </configuration> | |
| </execution> | |
| </executions> | |
| </plugin> | |
| <plugin> | |
| <groupId>org.apache.maven.plugins</groupId> | |
| <artifactId>maven-source-plugin</artifactId> | |
| <version>3.3.1</version> | |
| <configuration> | |
| <!-- The native libraries are downloaded into | |
| src/main/resources/native during the release build and belong only | |
| in the binary jar. Exclude them so the sources jar contains source | |
| code (and META-INF metadata), not platform binaries. --> | |
| <excludes> | |
| <exclude>native/**</exclude> | |
| <exclude>LICENSE-binary</exclude> | |
| <exclude>**/LICENSE-binary</exclude> | |
| </excludes> | |
| </configuration> | |
| <executions> | |
| <execution> | |
| <id>attach-sources</id> | |
| <goals> | |
| <goal>jar-no-fork</goal> | |
| </goals> | |
| </execution> | |
| </executions> | |
| </plugin> | |
| <plugin> | |
| <groupId>org.apache.maven.plugins</groupId> | |
| <artifactId>maven-javadoc-plugin</artifactId> | |
| <version>3.6.3</version> | |
| <configuration> | |
| <quiet>true</quiet> | |
| </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> | |
| <executions> | |
| <execution> | |
| <id>enforce-maven</id> | |
| <goals> | |
| <goal>enforce</goal> | |
| </goals> | |
| <configuration> | |
| <rules> | |
| <requireJavaVersion> | |
| <version>1.8.0</version> | |
| </requireJavaVersion> | |
| <requireMavenVersion> | |
| <version>[3.1.1,)</version> | |
| </requireMavenVersion> | |
| </rules> | |
| </configuration> | |
| </execution> | |
| </executions> | |
| </plugin> | |
| <plugin> | |
| <groupId>org.sonatype.plugins</groupId> | |
| <artifactId>nexus-staging-maven-plugin</artifactId> | |
| <version>1.7.0</version> | |
| <extensions>true</extensions> | |
| <configuration> | |
| <serverId>apache.releases.https</serverId> | |
| <nexusUrl>https://repository.apache.org/</nexusUrl> | |
| <autoReleaseAfterClose>false</autoReleaseAfterClose> | |
| </configuration> | |
| </plugin> | |
| </plugins> | |
| </build> | |
| </profile> | |
| </profiles> | |
| </project> |