How to build Gravitino
Prerequisites
- Linux or macOS operating system
- Git
- A Java Development Kit version 8 to 17 installed in your environment to launch Gradle
- Optionally Docker to run integration tests
- Gravitino requires at least JDK8 and at most JDK17 to run Gradle, so you need to install JDK8 to 17 version to launch the build environment.
- Gravitino itself supports using JDK8, 11, and 17 to build, Gravitino Trino connector uses JDK17 to build. You don't have to preinstall the specified JDK environment,
- Gradle detects the JDK version needed and downloads it automatically.
- Gravitino uses Gradle Java Toolchain to detect and manage JDK versions, it checks the
installed JDK by running
./gradlew javaToolchains
command. For the details of Gradle Java Toolchain, please see Gradle Java Toolchain. - Make sure you have installed Docker in your environment as Gravitino uses it to run integration tests; without it, some Docker-related tests may not run.
- macOS uses "docker-connector" to make the Gravitino Trino connector work with Docker
for macOS. For the details of "docker-connector", please see docker-connector
,
$GRAVITINO_HOME/dev/docker/tools/mac-docker-connector.sh
, and$GRAVITINO_HOME/dev/docker/tools/README.md
for more details. - Alternatively, you can use OrbStack to replace Docker for macOS, please see OrbStack, with OrbStack you can run Gravitino integration tests without needing to install "docker-connector".
Quick start
-
Clone the Gravitino project.
git clone git@github.com:datastrato/gravitino.git
-
Build the Gravitino project.
cd gravitino
./gradlew build
The first time you build the project, downloading the dependencies may take a while. You can add
-x test
to skip the tests, by using ./gradlew build -x test
.
-
Get the Gravitino binary package.
./gradlew compileDistribution
The
compileDistribution
command creates adistribution
directory in the Gravitino root directory.The directory structure of the
distribution
directory is as follows:
The ./gradlew clean
command deletes the distribution
directory.
-
Assemble the Gravitino distribution package.
./gradlew assembleDistribution
The
assembleDistribution
command createsgravitino-{version}-bin.tar.gz
andgravitino-{version}-bin.tar.gz.sha256
under thedistribution
directory.You can deploy them to your production environment.
The gravitino-{version}-bin.tar.gz
file is the Gravitino server distribution package, and the
gravitino-{version}-bin.tar.gz.sha256
file is the sha256 checksum file for the Gravitino
server distribution package.
-
Assemble Gravitino Trino connector package
./gradlew assembleTrinoConnector
or
./gradlew assembleDistribution
This creates
gravitino-trino-connector-{version}.tar.gz
andgravitino-trino-connector-{version}.tar.gz.sha256
under thedistribution
directory.