JReleaser
JReleaser is a release automation tool. Its goal is to simplify creating releases and publishing artifacts to multiple package managers while providing customizable options. However, you may use it with projects that do not require publishing binary assets. You may use it to create Git releases (tag, changelog, assets), announce releases, create additional binaries and files to be published via package managers. JReleaser supports any kind of project regardless of its source language (Java, Node, Rust, Perl, Python, etc), although it provides additional benefits to Java based projects.
What it does
JReleaser takes inputs from popular builds tools (Apache Ant, Apache Maven, Gradle, Cargo, NPM, etc) such as JAR files, binary distributions
(.zip
, .tar
), JLink images, or any other file that you’d like to publish as a Git release on popular Git services
such as GitHub, GitLab, or Gitea. Distribution files can additionally be published to be consumed by popular package managers
as Homebrew, Snapcraft, Scoop, or get ready to be launched via JBang. Releases may be announced in a variety of channels such
as Twitter, Zulip, Sdkman, and others. Have a look at the listed integrations.

JReleaser provides explicit integration via plugins for Apache Ant,
Apache Maven, and
Gradle build tools.
Use the
CLI for any other build tool.
How does it work
A release process can be customized with a jreleaser.[yml|toml|json]
file if using the
CLI or
Apache Ant options, or
direct DSL configuration inside a
pom.xml
( Apache Maven) or
build.gradle
( Gradle) file.
Once setup, you can create a new release by invoking the full-release
command or any other commands described in the
Workflow.
Every step of the release process is configurable. Inputs may be parameterized externally. Several input files may be provided as templates.
Where does it run
You can run JReleaser at your local development machine or at any of the supported CI/CD services.
Who is using it
A non-exhaustive list of projects that use JReleaser:
- ConnOR
-
A commandline tool for resetting Kafka Connect source connector offsets.
- DiscoCLI
- Griffon
-
Next generation desktop application development platform for the JVM.
- Ikonli
-
Icon packs for Java applications.
- JBang
-
Unleash the power of Java - JBang Lets Students, Educators and Professional Developers create, edit and run self-contained source-only Java programs with unprecedented ease.
- JfrUnit
-
A JUnit extension for asserting JDK Flight Recorder events.
- JFXCentral
-
JavaFX powered desktop & web application collecting useful resources for JavaFX development.
- kcctl
-
A modern and intuitive command line client for Kafka Connect.
- mcs
-
Search the Maven Central Repository from your command line!
- Neo4j-Migrations
-
Automated script runner aka "Migrations" for Neo4j. Inspired by Flyway.
- Quarkus
-
Supersonic Subatomic Java.
- SceneBuilder
-
Scene Builder is a visual, drag 'n' drop, layout tool for designing JavaFX application user interfaces.
- SDKMAN!
-
The SDKMAN! Command Line Interface.
Acknowledgments
JReleaser is heavily inspired by GoReleaser. It also builds on top of the lessons learned from JBang's original build setup. Since July 2021 JBang’s releases are now posted via JReleaser.