Build

JVM Build & Dependency Management Tools

A modern JVM project is built by one of a small set of tools: Maven and Gradle dominate, with sbt and Bazel in specific niches. All of them orchestrate compilation, testing, packaging and dependency resolution against repositories such as Maven Central.

Beyond the build orchestrators, the JDK itself ships packaging and modularization tools — jlink for custom runtimes, jpackage for native installers, jmod for module files — that have grown far more important since the modularization of Java 9. The growth of single-file Java (java Source.java, JBang) has also changed what 'a build tool' has to be for small projects and prototypes.

What you'll find here: Maven vs Gradle: how to choose for a project · jlink & jpackage for small, distributable runtimes · JBang and source-file mode for scripts and prototypes · Dependency repositories and consistency: Maven Central, lockfiles

Build tools

In-depth guides in this category