--- title: Prerequisites 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 17](https://docs.oracle.com/en/java/javase/17/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.8 or 3.9](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 "17.0.8.1" 2023-08-24 OpenJDK Runtime Environment AdoptOpenJDK-17.0.8.1+0 (build 17.0.8.1+0) OpenJDK 64-Bit Server VM AdoptOpenJDK-17.0.8.1+0 (build 17.0.8.1+0, mixed mode) > 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