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 javaToolchainscommand. 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.mdfor 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 compileDistributionThe
compileDistributioncommand creates adistributiondirectory in the Gravitino root directory.The directory structure of the
distributiondirectory is as follows:
The ./gradlew clean command deletes the distribution directory.
-
Assemble the Gravitino distribution package.
./gradlew assembleDistributionThe
assembleDistributioncommand createsgravitino-{version}-bin.tar.gzandgravitino-{version}-bin.tar.gz.sha256under thedistributiondirectory.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 assembleTrinoConnectoror
./gradlew assembleDistributionThis creates
gravitino-trino-connector-{version}.tar.gzandgravitino-trino-connector-{version}.tar.gz.sha256under thedistributiondirectory.