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_HOMEset 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 -DskipTestsThis 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 verifyTestcontainers 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
- Architecture — choose the right API and runtime modules.
- Configuration — distinguish library properties from Kafka broker settings.
- Source: openlakestream/ursa