Building from source

This page provides some instructions on how to build Structurizr from the source code. This provides all commands, with the open core version of server.

Prerequisites:

  • Java 21

Building

git clone https://github.com/structurizr/structurizr.git
cd structurizr
./mvnw -DexcludedGroups=IntegrationTest package

The above command excludes integration tests because these require Docker to be installed. If any of the other tests fail, you can run the following command to skip all tests:

./mvnw -Dmaven.test.skip=true package

Running

java -jar structurizr-application/target/structurizr-1.0.0.war

Building a Docker image

To build a Docker image, build the code first as above, then:

docker build . -t structurizr

Version numbers

The Structurizr for Java library version numbers are specified by <version> tags in the respective pom.xml files and follow a semantic versioning scheme of the form major.minor.patch (example).

The local/server/export/etc commands are bundled into a single Java application, the version number of which is specified in the structurizr-application/pom.xml file via a property named app.revision that defaults to 1.0.0. The prebuilt binaries follow a calendar versioning scheme of the form yyyy.mm.dd, set on the command line when the build is initiated:

./mvnw package -Dapp.revision=2026.02.01