--- title: Prerequisites | OpenMetadata Developer Setup Requirements slug: /developers/contribute/build-code-and-run-tests/prerequisites --- # Prerequisites This guide will help you set up all prerequisites to develop on OpenMetadata. OpenMetadata being a full stack project, we use the following for development: - [Docker 20 or higher](https://docs.docker.com/engine/install/) - [Java JDK 21](https://docs.oracle.com/en/java/javase/21/install/overview-jdk-installation.html) - [Antlr 4.9.2](https://www.antlr.org/) - `sudo make install_antlr_cli` - [JQ](https://jqlang.github.io/jq/) - `brew install jq` (osx) `apt-get install jq` (Ubuntu) - [Maven 3.5.x or higher](https://maven.apache.org/install.html) - (with Java JDK 11) - [Python 3.9 to 3.11](https://www.python.org/downloads/) - [Node 18.x](https://nodejs.org/en/download/) - [Yarn ^1.22.0](https://classic.yarnpkg.com/lang/en/docs/install/) - [Rpm (Optional, only to run RPM profile with maven)](https://macappstore.org/rpm/) To validate the installation of the above tools, you can run: ```shell make prerequisites ``` ### Example Snapshot on a Macbook ```shell > docker --version Docker version 20.10.8, build 3967b7d > java -version openjdk version "21.0.7" 2025-04-15 OpenJDK Runtime Environment Homebrew (build 21.0.7) OpenJDK 64-Bit Server VM Homebrew (build 21.0.7, mixed mode, sharing) > antlr4 ANTLR Parser Generator Version 4.9.2 -o ___ specify output directory where all output is generated -lib ___ specify location of grammars, tokens files -atn generate rule augmented transition network diagrams -encoding ___ specify grammar file encoding; e.g., euc-jp -message-format ___ specify output style for messages in antlr, gnu, vs2005 -long-messages show exception details when available for errors and warnings -listener generate parse tree listener (default) -no-listener don\'t generate parse tree listener -visitor generate parse tree visitor -no-visitor don\'t generate parse tree visitor (default) -package ___ specify a package/namespace for the generated code -depend generate file dependencies -D