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 uses JDK8 to build, Gravitino Trino connector uses JDK17 to build. You don't have to preinstall JDK8 or JDK17, 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.