Development Environment
May 20, 2025 · View on GitHub
Development Tools
If you would like to build your own copy of Athenz rather than using the pre-built binary packages, then here is the list of development tools you need to have installed on your system.
Build Within Docker Container
You can replicate the container environment that Athenz users within
Screwdriver to build and deploy Athenz packages. You can start a new
container using the openjdk:11 image. Once you check out the Athenz
source tree, you can execute the install_deps.sh script
to install the required development tools:
$ git clone https://github.com/AthenZ/athenz.git
$ cd athenz
$ sh screwdriver/scripts/install_deps.sh
Manual Installation of Development Tools
Java Platform JDK 11
To build Athenz components, you must have Java Platform JDK 11 installed on your machine. The main authorization services - ZMS and ZTS, are written in Java and using embedded Jetty.
Make sure you have set the $JAVA_HOME environment variable.
$ java -XshowSettings:properties -version 2>&1 > /dev/null | grep 'java.home'
$ export JAVA_HOME=<java-home-directory>
Maven
Download and install Apache Maven.
Git Client
If you don't have git client installed on your host, you can download one from Git website. 2.x version of the git client is required.
Go
Install go 1.24.2 or newer version by following the directions at Getting Started - The Go Programming Language.
Make sure you have set the [GOPATH environment variable](https://pkg.go.dev/cmd/go#hdr-GOPATH_environment_variable)
and that you have `GOPATH/binin your$PATH`.
$ export GOPATH=<gopath-directory>
$ mkdir -p $GOPATH/bin
$ export PATH=$PATH:/usr/local/go/bin:$GOPATH/bin
Node JS
Install node 22.x by following the directions at Node.js JavaScript Runtime
Verify that you have the required minimum version of node,
npm and nodemon binaries installed on your system and are included
in your runtime path:
$ node --version
v22.15.1
$ npm -v
10.9.2
$ npm install -g nodemon
$ nodemon --version
3.0.3
Build Steps
To build Athenz components, change to the top level directory where you want to build the Athenz code and execute (skip the first command if you have already checked out the code using git):
$ git clone https://github.com/AthenZ/athenz.git
$ cd athenz
$ mvn clean install
The release packages will be created automatically in the assembly
subdirectory.