What problem does it solve?
Building and testing the cuDF Java bindings (cudf-java) requires correctly configuring JNI against either an installed nightly libcudf package or a local libcudf source build, and misconfiguration causes linker errors, symbol resolution failures, and flaky Maven test runs. This Skill guides the full workflow inside a cuDF devcontainer.
Core Features & Use Cases
- Prerequisite Setup: Verifies and installs JDK 17+ and Maven across apt, dnf, pacman, and brew based systems.
- Dual libcudf Providers: Builds JNI against an installed nightly libcudf conda package for Java-only changes, or against a local libcudf source build when native changes are involved.
- Robust Test Execution: Runs all tests, specific test classes or methods via named Surefire executions, and avoids the known libarrow.a linker race condition by running mvn install before mvn test.
- Use Case: A developer modifies a JNI class in the cudf repository and needs to compile the native bindings against a matching nightly libcudf, verify symbol resolution with ldd, and run a single failing test class.
Quick Start
Build the cuDF Java bindings and run the full Java test suite in this devcontainer.