Lakestream
Ursa

Build from source

Build and test Ursa from the openlakestream/ursa repository.

Ursa's libraries are published to Maven Central under the org.openlakestream group at version 1.0.0, so consuming Ursa, as the quickstart does, needs no source build. Build from source when you want to change Ursa or run its test suite. The commands pin the v1.0.0 tag for a reproducible setup.

Prerequisites

  • JDK 17, with JAVA_HOME set to it. JDK 25 cannot compile the project yet because of the Lombok version the build uses.
  • Maven 3.6.3 or later
  • Git
  • A running Docker daemon for the Testcontainers-based integration tests

All dependencies come from public Maven repositories; no repository credentials are needed.

Clone and build

git clone --branch v1.0.0 https://github.com/openlakestream/ursa.git
cd ursa
mvn -B -ntp clean install -DskipTests

This installs the reactor artifacts, org.openlakestream:*:1.0.0, into your local Maven repository, where a build such as the quickstart's picks them up instead of the Maven Central copies.

Run tests

# Unit tests
mvn -B -ntp test

# Core module tests, after installing the reactor above
mvn -B -ntp test -pl ursa-storage-core

# Full reactor verification; Docker is required by integration tests
docker info
mvn -B -ntp verify

Testcontainers provisions the dependencies needed by integration tests. Ursa does not maintain its own Compose stack, and no Pulsar service is needed.

Getting a modified Ursa into Kafka

Kafka's Gradle build resolves the org.openlakestream group from Maven Central only and does not read your local Maven repository. A locally modified Ursa reaches a Kafka image only if you publish it under a different version and point Kafka's ursaStorageVersion property at it before running ./build-image.sh, as described in the Kafka quickstart.

Next steps