diff --git a/.gitignore b/.gitignore index fab91721d7..3aae6c21fa 100644 --- a/.gitignore +++ b/.gitignore @@ -79,3 +79,4 @@ ivf_pq_index # java .classpath +cufile.log diff --git a/conda/environments/all_cuda-129_arch-aarch64.yaml b/conda/environments/all_cuda-129_arch-aarch64.yaml index 5ac6089778..481affa0b2 100644 --- a/conda/environments/all_cuda-129_arch-aarch64.yaml +++ b/conda/environments/all_cuda-129_arch-aarch64.yaml @@ -31,13 +31,13 @@ dependencies: - libopenblas<=0.3.30 - librmm==26.12.*,>=0.0.0a0 - make -- maven=3.9.* +- maven>=3.10.0,<3.11.0 - nccl>=2.19 - ninja - nodejs>=22 - numpy>=2.0,<3.0 - openblas -- openjdk=22.* +- openjdk>=22,<23 - pre-commit - pylibraft==26.12.*,>=0.0.0a0 - pytest diff --git a/conda/environments/all_cuda-129_arch-x86_64.yaml b/conda/environments/all_cuda-129_arch-x86_64.yaml index 62b69c26ba..30467281b9 100644 --- a/conda/environments/all_cuda-129_arch-x86_64.yaml +++ b/conda/environments/all_cuda-129_arch-x86_64.yaml @@ -30,13 +30,13 @@ dependencies: - libnvjitlink-dev - librmm==26.12.*,>=0.0.0a0 - make -- maven=3.9.* +- maven>=3.10.0,<3.11.0 - nccl>=2.19 - ninja - nodejs>=22 - numpy>=2.0,<3.0 - openblas -- openjdk=22.* +- openjdk>=22,<23 - pre-commit - pylibraft==26.12.*,>=0.0.0a0 - pytest diff --git a/conda/environments/all_cuda-133_arch-aarch64.yaml b/conda/environments/all_cuda-133_arch-aarch64.yaml index 00c12ab875..503e8e1e5d 100644 --- a/conda/environments/all_cuda-133_arch-aarch64.yaml +++ b/conda/environments/all_cuda-133_arch-aarch64.yaml @@ -33,13 +33,13 @@ dependencies: - libopenblas<=0.3.30 - librmm==26.12.*,>=0.0.0a0 - make -- maven=3.9.* +- maven>=3.10.0,<3.11.0 - nccl>=2.19 - ninja - nodejs>=22 - numpy>=2.0,<3.0 - openblas -- openjdk=22.* +- openjdk>=22,<23 - pre-commit - pylibraft==26.12.*,>=0.0.0a0 - pytest diff --git a/conda/environments/all_cuda-133_arch-x86_64.yaml b/conda/environments/all_cuda-133_arch-x86_64.yaml index c3c1a29d80..bf705af067 100644 --- a/conda/environments/all_cuda-133_arch-x86_64.yaml +++ b/conda/environments/all_cuda-133_arch-x86_64.yaml @@ -32,13 +32,13 @@ dependencies: - libnvjitlink-dev - librmm==26.12.*,>=0.0.0a0 - make -- maven=3.9.* +- maven>=3.10.0,<3.11.0 - nccl>=2.19 - ninja - nodejs>=22 - numpy>=2.0,<3.0 - openblas -- openjdk=22.* +- openjdk>=22,<23 - pre-commit - pylibraft==26.12.*,>=0.0.0a0 - pytest diff --git a/dependencies.yaml b/dependencies.yaml index dc0b3e0ef7..c774d998d4 100644 --- a/dependencies.yaml +++ b/dependencies.yaml @@ -330,8 +330,8 @@ dependencies: # spotless-fmt pre-commit hook requires Maven and a JDK - output_types: [conda] packages: - - maven=3.9.* - - &openjdk openjdk=22.* + - maven>=3.10.0,<3.11.0 + - &openjdk openjdk>=22,<23 clang: common: - output_types: conda @@ -656,7 +656,7 @@ dependencies: packages: - *cmake_ver - libboost-devel - - maven=3.9.* + - maven>=3.10.0,<3.11.0 - *openjdk bench: common: diff --git a/examples/java/cuvs-java/pom.xml b/examples/java/cuvs-java/pom.xml index abc52cf1fe..7bb1ecf0fc 100644 --- a/examples/java/cuvs-java/pom.xml +++ b/examples/java/cuvs-java/pom.xml @@ -114,24 +114,33 @@ SPDX-License-Identifier: Apache-2.0 maven-clean-plugin - 3.4.0 + 3.5.0 maven-resources-plugin - 3.3.1 + 3.5.0 + + + + maven-surefire-plugin + 3.5.6 + + + maven-install-plugin + 3.2.0 maven-compiler-plugin - 3.13.0 + 3.16.0 maven-jar-plugin - 3.4.2 + 3.5.1 maven-assembly-plugin - 3.4.2 + 3.8.0 make-jar-with-dependencies diff --git a/examples/java/cuvs-lucene/pom.xml b/examples/java/cuvs-lucene/pom.xml index 3d0f3669a0..9066e314e7 100644 --- a/examples/java/cuvs-lucene/pom.xml +++ b/examples/java/cuvs-lucene/pom.xml @@ -132,7 +132,7 @@ org.apache.maven.plugins maven-assembly-plugin - 3.6.0 + 3.8.0 src/main/assembly/jar-with-merged-services.xml @@ -162,39 +162,40 @@ maven-clean-plugin - 3.4.0 + 3.5.0 maven-resources-plugin - 3.3.1 + 3.5.0 maven-compiler-plugin - 3.13.0 + 3.16.0 + maven-surefire-plugin - 3.3.0 + 3.5.6 maven-jar-plugin - 3.4.2 + 3.5.1 maven-install-plugin - 3.1.2 + 3.2.0 maven-deploy-plugin - 3.1.2 + 3.2.0 maven-site-plugin - 3.12.1 + 3.22.0 maven-project-info-reports-plugin - 3.6.1 + 3.9.0 diff --git a/fern/pages/installation/java.md b/fern/pages/installation/java.md index cb91be0a9e..70bc63b342 100644 --- a/fern/pages/installation/java.md +++ b/fern/pages/installation/java.md @@ -20,7 +20,7 @@ If you use locally built native libraries, make sure the directory containing `l Java development also requires: -1. Maven 3.9.6 or newer. +1. Maven 3.10 or newer. 2. JDK 22. 3. jextract for JDK 22. If it is not already installed, the build script downloads it. @@ -69,7 +69,7 @@ java/panama-bindings/generate-bindings.sh `cuvs-lucene` provides Apache Lucene codecs that offload vector index build, and optionally search, to the GPU. It is published as a separate artifact that builds on the Java API described above. For usage guidance, see the [Lucene Integration](/user-guide/lucene) guide. -`cuvs-lucene` targets Lucene 10.2, requires JDK 22 and Maven 3.9.6 or newer, and inherits the NVIDIA cuVS [CUDA GPU requirements](/installation#cuda-gpu-requirements). +`cuvs-lucene` targets Lucene 10.2, requires JDK 22 and Maven 3.10 or newer, and inherits the NVIDIA cuVS [CUDA GPU requirements](/installation#cuda-gpu-requirements). `Lucene101AcceleratedHNSWCodec` falls back to CPU index construction when no GPU or native library is available, so an application using it works on GPU and non-GPU hosts alike. The other three codecs require a working cuVS installation. See [Lucene Integration](/user-guide/lucene) for details. diff --git a/java/.gitignore b/java/.gitignore index 6f4eb283a3..2e98aff7ba 100644 --- a/java/.gitignore +++ b/java/.gitignore @@ -1,6 +1,5 @@ *.iml hs_err*.log -cufile.log target/ jextract-22/ openjdk-22-jextract* diff --git a/java/README.md b/java/README.md index 94d1f1bba0..7c56e8fab2 100644 --- a/java/README.md +++ b/java/README.md @@ -8,7 +8,7 @@ cuVS Java API provides a Java based simple, efficient, and a robust vector searc ## Prerequisites - [CuVS libraries](https://docs.nvidia.com/cuvs/installation#build-from-source) -- [maven 3.9.6 or above](https://maven.apache.org/download.cgi) +- [maven 3.10 or above](https://maven.apache.org/download.cgi) - [JDK 22](https://openjdk.org/projects/jdk/22/) - [jextract for JDK 22](https://jdk.java.net/jextract/) (If not already installed, the build script downloads it) diff --git a/java/cuvs-java/pom.xml b/java/cuvs-java/pom.xml index 43d54d0cfd..9a9f0be696 100644 --- a/java/cuvs-java/pom.xml +++ b/java/cuvs-java/pom.xml @@ -142,7 +142,7 @@ SPDX-License-Identifier: Apache-2.0 org.apache.maven.plugins maven-compiler-plugin - 3.11.0 + 3.16.0 default-compile @@ -177,9 +177,16 @@ SPDX-License-Identifier: Apache-2.0 + + org.apache.maven.plugins + maven-surefire-plugin + 3.5.6 + + + org.apache.maven.plugins maven-failsafe-plugin - 3.5.2 + 3.5.6 1 --enable-native-access=com.nvidia.cuvs @@ -199,7 +206,7 @@ SPDX-License-Identifier: Apache-2.0 org.apache.maven.plugins maven-jar-plugin - 3.4.2 + 3.5.1 @@ -215,7 +222,7 @@ SPDX-License-Identifier: Apache-2.0 org.apache.maven.plugins maven-source-plugin - 2.2.1 + 3.4.0 attach-sources @@ -232,12 +239,15 @@ SPDX-License-Identifier: Apache-2.0 true + + false + org.apache.maven.plugins maven-javadoc-plugin - 3.11.2 + 3.12.0 attach-javadocs @@ -281,6 +291,12 @@ SPDX-License-Identifier: Apache-2.0 + + + org.apache.maven.plugins + maven-install-plugin + 3.2.0 + @@ -339,7 +355,7 @@ SPDX-License-Identifier: Apache-2.0 org.apache.maven.plugins maven-resources-plugin - 3.3.1 + 3.5.0 copy-native-libs @@ -348,7 +364,7 @@ SPDX-License-Identifier: Apache-2.0 copy-resources - true + always ${project.build.directory}/native-libs/${os.arch}/${os.name} @@ -378,7 +394,7 @@ SPDX-License-Identifier: Apache-2.0 org.apache.maven.plugins maven-assembly-plugin - 3.4.2 + 3.8.0 src/assembly/native-with-deps.xml @@ -425,7 +441,7 @@ SPDX-License-Identifier: Apache-2.0 org.apache.maven.plugins maven-resources-plugin - 3.3.1 + 3.5.0 copy-native-libs @@ -434,7 +450,7 @@ SPDX-License-Identifier: Apache-2.0 copy-resources - true + always ${project.build.directory}/native-libs/${os.arch}/${os.name} @@ -464,7 +480,7 @@ SPDX-License-Identifier: Apache-2.0 org.apache.maven.plugins maven-assembly-plugin - 3.4.2 + 3.8.0 src/assembly/native-with-deps.xml @@ -511,7 +527,7 @@ SPDX-License-Identifier: Apache-2.0 org.apache.maven.plugins maven-resources-plugin - 3.3.1 + 3.5.0 copy-native-libs @@ -520,7 +536,7 @@ SPDX-License-Identifier: Apache-2.0 copy-resources - true + always ${project.build.directory}/native-libs/${os.arch}/${os.name} @@ -550,7 +566,7 @@ SPDX-License-Identifier: Apache-2.0 org.apache.maven.plugins maven-assembly-plugin - 3.4.2 + 3.8.0 src/assembly/native-with-deps.xml @@ -597,7 +613,7 @@ SPDX-License-Identifier: Apache-2.0 org.apache.maven.plugins maven-resources-plugin - 3.3.1 + 3.5.0 copy-native-libs @@ -606,7 +622,7 @@ SPDX-License-Identifier: Apache-2.0 copy-resources - true + always ${project.build.directory}/native-libs/${os.arch}/${os.name} @@ -636,7 +652,7 @@ SPDX-License-Identifier: Apache-2.0 org.apache.maven.plugins maven-assembly-plugin - 3.4.2 + 3.8.0 src/assembly/native-with-deps.xml diff --git a/java/cuvs-lucene/README.md b/java/cuvs-lucene/README.md index 1836d71ab5..4c787bb1e8 100644 --- a/java/cuvs-lucene/README.md +++ b/java/cuvs-lucene/README.md @@ -31,7 +31,7 @@ For guidance on choosing between them, configuring builds, and tuning GPU resour - An NVIDIA GPU, to use the GPU-accelerated paths (the accelerated HNSW codecs fall back to CPU index construction without one; `CuVS2510GPUSearchCodec` requires a GPU) - [CUDA Toolkit 12.2+](https://developer.nvidia.com/cuda-toolkit-archive) and an Ampere architecture GPU or newer, matching the [cuVS requirements](https://docs.nvidia.com/cuvs/installation) - [JDK 22](https://jdk.java.net/archive/) -- [Maven 3.9.6+](https://maven.apache.org/download.cgi) +- [Maven 3.10+](https://maven.apache.org/download.cgi) - A matching version of the [cuVS libraries](https://docs.nvidia.com/cuvs/installation/java). For Maven usage, install the cuVS libraries and add them to your system library load path. ### Maven diff --git a/java/cuvs-lucene/pom.xml b/java/cuvs-lucene/pom.xml index 6fe6de5eaa..334edd9580 100644 --- a/java/cuvs-lucene/pom.xml +++ b/java/cuvs-lucene/pom.xml @@ -144,6 +144,11 @@ SPDX-License-Identifier: Apache-2.0 + + org.apache.maven.plugins + maven-compiler-plugin + 3.16.0 + com.diffplug.spotless spotless-maven-plugin @@ -165,7 +170,7 @@ SPDX-License-Identifier: Apache-2.0 org.apache.maven.plugins maven-assembly-plugin - 3.6.0 + 3.8.0 jar-with-dependencies @@ -182,9 +187,10 @@ SPDX-License-Identifier: Apache-2.0 + org.apache.maven.plugins maven-surefire-plugin - 3.5.4 + 3.5.6 plain false @@ -202,7 +208,7 @@ SPDX-License-Identifier: Apache-2.0 org.apache.maven.plugins maven-source-plugin - 3.3.1 + 3.4.0 attach-sources @@ -223,7 +229,6 @@ SPDX-License-Identifier: Apache-2.0 jar - com.nvidia.cuvs.lucene all,-missing ${project.build.directory}/javadocs @@ -233,7 +238,7 @@ SPDX-License-Identifier: Apache-2.0 org.jacoco jacoco-maven-plugin - 0.8.14 + 0.8.15 @@ -253,7 +258,7 @@ SPDX-License-Identifier: Apache-2.0 org.apache.maven.plugins maven-install-plugin - 3.1.4 + 3.2.0