JReleaser CLI

Executes a JReleaser workflow as a command-line interface (CLI).

JReleaser is a release automation tool for Java projects.
Its goal is to simplify creating releases and publishing
artifacts to multiple package managers while providing
customizable options.

Usage: jreleaser [-hV] [-D=<key=value>]... [COMMAND]

Options:
  -D=<key=value>    Sets a System property. Repeatable.
  -h, --help        Show this help message and exit.
  -V, --version     Print version information and exit.

Commands:
  init                 Create a jreleaser config file.
  config               Display current configuration.
  template             Generate a packager/announcer template.
  download             Download assets.
  assemble             Assemble distributions.
  changelog            Calculate the changelog.
  checksum             Calculate checksums.
  sign                 Sign release artifacts.
  deploy               Deploys all staged artifacts.
  upload               Upload all artifacts.
  release              Create or update a release.
  prepare              Prepare all distributions.
  package              Package all distributions.
  publish              Publish all distributions.
  announce             Announce a release.
  full-release         Perform a full release.
  generate-completion  Generate bash/zsh completion script for jreleaser.
  json-schema          Generate JSON schema.

Documentation found at https://jreleaser.org

Environment Variables

The following settings may also be specified via environment variables

Setting

Environment Variable

Default

output-directory

JRELEASER_OUTPUT_DIRECTORY

out

JRELEASER_DEFAULT_GIT_REMOTE

origin

Install

  • Windows

  • Linux

  • Mac

sdkman

sdk install jreleaser

manually

Download the pre-compiled binary from the releases page, uncompress and copy to the desired location.

sdkman

sdk install jreleaser

manually

Download the pre-compiled binary from the releases page, uncompress and copy to the desired location.

homebrew tap

brew install jreleaser/tap/jreleaser

sdkman

sdk install jreleaser

manually

Download the pre-compiled binary from the releases page, uncompress and copy to the desired location.

Configuration

JReleaser must be configured using the YAML, TOML, or JSON DSLs shown at Configuration.

Commands

The following commands are supported:

init

$ jreleaser init -h
Create a jreleaser config file.

Usage: jreleaser init [-ghioqVw] [-b=<basedir>] [-f=<format>] [-od=<outputdir>]
                      [-D=<key=value>]...

Options:
  -b, --basedir=<basedir>   Base directory.
  -D=<key=value>            Sets a System property. Repeatable.
  -f, --format=<format>     Configuration file format.
  -g, --debug               Set log level to debug.
  -h, --help                Show this help message and exit.
  -i, --info                Set log level to info.
  -o, --overwrite           Overwrite existing files.
      -od, --output-directory=<outputdir>
                            Output directory.
  -q, --quiet               Log errors only.
  -V, --version             Print version information and exit.
  -w, --warn                Set log level to warn.

Documentation found at https://jreleaser.org

Currently supported formats are: yml, json.

The file will be generated at <basedir> if specified, otherwise at the current directory.

config

$ jreleaser config -h
Display current configuration.

Usage: jreleaser config [-fghiqVw] [-grs] [-scp] [-b=<basedir>]
                        [-c=<configFile>] [-od=<outputdir>] [-D=<key=value>]...
                        [-P=<key=value>]... [-sp=<platform>]... [--announce |
                        -a | --changelog | -d]

Options:
  -a, --assembly            Display assembly configuration.
      --announce            Display announce configuration.
  -b, --basedir=<basedir>   Base directory.
  -c, --config-file=<configFile>
                            The config file.
      --changelog           Display changelog configuration.
  -d, --download            Display download configuration.
  -D=<key=value>            Sets a System property. Repeatable.
  -f, --full                Display full configuration.
  -g, --debug               Set log level to debug.
      -grs, --git-root-search
                            Searches for the Git root.
  -h, --help                Show this help message and exit.
  -i, --info                Set log level to info.
      -od, --output-directory=<outputdir>
                            Output directory.
  -P, --set-property=<key=value>
                            Sets the value of a property. Repeatable.
  -q, --quiet               Log errors only.
      -scp, --select-current-platform
                            Activates paths matching the current platform.
      -sp, --select-platform=<platform>
                            Activates paths matching the given platform.
                              Repeatable.
  -V, --version             Print version information and exit.
  -w, --warn                Set log level to warn.

Documentation found at https://jreleaser.org

If --config-file is undefined then the command assumes the file is named jreleaser.[yml|toml|json] and it’s found at the current directory.

If --basedir is undefined then the command assumes it’s the same directory that contains the resolved config file.

template

$ jreleaser template -h
Generate a packager/announcer template.

Usage: jreleaser template [-ghioqVw] [-sn] [-b=<basedir>] [-od=<outputdir>]
                          [-D=<key=value>]... ([-a=<announcer>] |
                          [-d=<distribution> -p=<packager> [-dt=<type>]])

Options:
  -b, --basedir=<basedir>   Base directory.
  -D=<key=value>            Sets a System property. Repeatable.
  -g, --debug               Set log level to debug.
  -h, --help                Show this help message and exit.
  -i, --info                Set log level to info.
  -o, --overwrite           Overwrite existing files.
      -od, --output-directory=<outputdir>
                            Output directory.
  -q, --quiet               Log errors only.
      -sn, --snapshot       Use snapshot templates.
  -V, --version             Print version information and exit.
  -w, --warn                Set log level to warn.

Announcer templates
  -a, --announcer=<announcer>
                            The name of the announcer.

Packager templates
  -d, --distribution=<distribution>
                            The name of the distribution.
      -dt, --distribution-type=<type>
                            The type of the distribution.
                            Defaults to JAVA_BINARY.
  -p, --packager=<packager> The name of the packager.

Documentation found at https://jreleaser.org

If --basedir is undefined then the command assumes it’s the current directory.

Announcer and tool settings are mutually exclusive.

The value of --announcer must match any of the available announcers.

The value of --distribution must match the name of a configured distribution.

The value of --distribution-type must match any of the available distribution types.

The value of --packager must match any of the available Packagers.

download

$ jreleaser download -h
Download assets.

Usage: jreleaser download [-ghiqVw] [--dry-run] [-grs] [-b=<basedir>]
                          [-c=<configFile>] [-od=<outputdir>]
                          [-D=<key=value>]... [-P=<key=value>]...
                          [[[-d=<downloader>]... [-dn=<name>]...] |
                          [[-xd=<downloader>]... [-xdn=<name>]...]]

Options:
  -b, --basedir=<basedir>   Base directory.
  -c, --config-file=<configFile>
                            The config file.
  -D=<key=value>            Sets a System property. Repeatable.
      --dry-run             Skip remote operations.
  -g, --debug               Set log level to debug.
      -grs, --git-root-search
                            Searches for the Git root.
  -h, --help                Show this help message and exit.
  -i, --info                Set log level to info.
      -od, --output-directory=<outputdir>
                            Output directory.
  -P, --set-property=<key=value>
                            Sets the value of a property. Repeatable.
  -q, --quiet               Log errors only.
  -V, --version             Print version information and exit.
  -w, --warn                Set log level to warn.

Include Filter:
  -d, --downloader=<downloader>
                            Include an downloader by type. Repeatable.
      -dn, --downloader-name=<name>
                            Include an downloader by name. Repeatable.

Exclude Filter:
      -xd, --exclude-downloader=<downloader>
                            Exclude an downloader by type. Repeatable.
      -xdn, --exclude-downloader-name=<name>
                            Exclude an downloader by name. Repeatable.

Documentation found at https://jreleaser.org

If --config-file is undefined then the command assumes the file is named jreleaser.[yml|toml|json] and it’s found at the current directory.

If --basedir is undefined then the command assumes it’s the same directory that contains the resolved config file.

The value of --downloader and --exclude-downloader-type must match the type of configured downloader.

The value of --downloader-name and --exclude-downloader-name must match any of the available named downloaders.

This command must be invoked separately from the others.

assemble

$ jreleaser assemble -h
Assemble distributions.

Usage: jreleaser assemble [-ghiqVw] [-grs] [-scp] [-b=<basedir>]
                          [-c=<configFile>] [-od=<outputdir>]
                          [-D=<key=value>]... [-P=<key=value>]...
                          [-sp=<platform>]... [[[-s=<assembler>]...
                          [-d=<distribution>]...] | [[-xs=<assembler>]...
                          [-xd=<distribution>]...]]

Options:
  -b, --basedir=<basedir>   Base directory.
  -c, --config-file=<configFile>
                            The config file.
  -D=<key=value>            Sets a System property. Repeatable.
  -g, --debug               Set log level to debug.
      -grs, --git-root-search
                            Searches for the Git root.
  -h, --help                Show this help message and exit.
  -i, --info                Set log level to info.
      -od, --output-directory=<outputdir>
                            Output directory.
  -P, --set-property=<key=value>
                            Sets the value of a property. Repeatable.
  -q, --quiet               Log errors only.
      -scp, --select-current-platform
                            Activates paths matching the current platform.
      -sp, --select-platform=<platform>
                            Activates paths matching the given platform.
                              Repeatable.
  -V, --version             Print version information and exit.
  -w, --warn                Set log level to warn.

Include Filter:
  -d, --distribution=<distribution>
                            Include a distribution. Repeatable.
  -s, --assembler=<assembler>
                            Include an assembler. Repeatable.

Exclude Filter:
      -xd, --exclude-distribution=<distribution>
                            Exclude a distribution. Repeatable.
      -xs, --exclude-assembler=<assembler>
                            Exclude an assembler. Repeatable.

Documentation found at https://jreleaser.org

If --config-file is undefined then the command assumes the file is named jreleaser.[yml|toml|json] and it’s found at the current directory.

If --basedir is undefined then the command assumes it’s the same directory that contains the resolved config file.

The value of --assembler and --exclude-assembler must match any of the available assemblers.

The value of --distribution and --exclude-distribution must match the name of a configured assembler found in the assemblers section.

This command must be invoked separately from the others as some assemblers are platform specific.

changelog

$ jreleaser changelog -h
Calculate the changelog.

Usage: jreleaser changelog [-ghiqVw] [-grs] [-b=<basedir>] [-c=<configFile>]
                           [-od=<outputdir>] [-D=<key=value>]...
                           [-P=<key=value>]...

Options:
  -b, --basedir=<basedir>   Base directory.
  -c, --config-file=<configFile>
                            The config file.
  -D=<key=value>            Sets a System property. Repeatable.
  -g, --debug               Set log level to debug.
      -grs, --git-root-search
                            Searches for the Git root.
  -h, --help                Show this help message and exit.
  -i, --info                Set log level to info.
      -od, --output-directory=<outputdir>
                            Output directory.
  -P, --set-property=<key=value>
                            Sets the value of a property. Repeatable.
  -q, --quiet               Log errors only.
  -V, --version             Print version information and exit.
  -w, --warn                Set log level to warn.

Documentation found at https://jreleaser.org

If --config-file is undefined then the command assumes the file is named jreleaser.[yml|toml|json] and it’s found at the current directory.

If --basedir is undefined then the command assumes it’s the same directory that contains the resolved config file.

checksum

$ jreleaser checksum -h
Calculate checksums.

Usage: jreleaser checksum [-ghiqVw] [-grs] [-scp] [-b=<basedir>]
                          [-c=<configFile>] [-od=<outputdir>]
                          [-D=<key=value>]... [-P=<key=value>]...
                          [-sp=<platform>]... [[[-d=<distribution>]...] |
                          [[-xd=<distribution>]...]]

Options:
  -b, --basedir=<basedir>   Base directory.
  -c, --config-file=<configFile>
                            The config file.
  -D=<key=value>            Sets a System property. Repeatable.
  -g, --debug               Set log level to debug.
      -grs, --git-root-search
                            Searches for the Git root.
  -h, --help                Show this help message and exit.
  -i, --info                Set log level to info.
      -od, --output-directory=<outputdir>
                            Output directory.
  -P, --set-property=<key=value>
                            Sets the value of a property. Repeatable.
  -q, --quiet               Log errors only.
      -scp, --select-current-platform
                            Activates paths matching the current platform.
      -sp, --select-platform=<platform>
                            Activates paths matching the given platform.
                              Repeatable.
  -V, --version             Print version information and exit.
  -w, --warn                Set log level to warn.

Include Filter:
  -d, --distribution=<distribution>
                            Include a distribution. Repeatable.

Exclude Filter:
      -xd, --exclude-distribution=<distribution>
                            Exclude a distribution. Repeatable.

Documentation found at https://jreleaser.org

If --config-file is undefined then the command assumes the file is named jreleaser.[yml|toml|json] and it’s found at the current directory.

If --basedir is undefined then the command assumes it’s the same directory that contains the resolved config file.

The value of --distribution and --exclude-distribution must match the name of a configured distribution found in the distribution section.

sign

$ jreleaser sign -h
Sign release artifacts.

Usage: jreleaser sign [-ghiqVw] [-grs] [-scp] [-b=<basedir>] [-c=<configFile>]
                      [-od=<outputdir>] [-D=<key=value>]... [-P=<key=value>]...
                      [-sp=<platform>]... [[[-d=<distribution>]...] |
                      [[-xd=<distribution>]...]]

Options:
  -b, --basedir=<basedir>   Base directory.
  -c, --config-file=<configFile>
                            The config file.
  -D=<key=value>            Sets a System property. Repeatable.
  -g, --debug               Set log level to debug.
      -grs, --git-root-search
                            Searches for the Git root.
  -h, --help                Show this help message and exit.
  -i, --info                Set log level to info.
      -od, --output-directory=<outputdir>
                            Output directory.
  -P, --set-property=<key=value>
                            Sets the value of a property. Repeatable.
  -q, --quiet               Log errors only.
      -scp, --select-current-platform
                            Activates paths matching the current platform.
      -sp, --select-platform=<platform>
                            Activates paths matching the given platform.
                              Repeatable.
  -V, --version             Print version information and exit.
  -w, --warn                Set log level to warn.

Include Filter:
  -d, --distribution=<distribution>
                            Include a distribution. Repeatable.

Exclude Filter:
      -xd, --exclude-distribution=<distribution>
                            Exclude a distribution. Repeatable.

Documentation found at https://jreleaser.org

If --config-file is undefined then the command assumes the file is named jreleaser.[yml|toml|json] and it’s found at the current directory.

If --basedir is undefined then the command assumes it’s the same directory that contains the resolved config file.

The value of --distribution and --exclude-distribution must match the name of a configured distribution found in the distribution section.

deploy

$ jreleaser deploy -h
Deploys all staged artifacts.

Usage: jreleaser deploy [-ghiqVw] [--dry-run] [-grs] [-scp] [-b=<basedir>]
                        [-c=<configFile>] [-od=<outputdir>] [-D=<key=value>]...
                        [-P=<key=value>]... [-sp=<platform>]...
                        [[[-y=<deployer>]... [-yn=<name>]...] |
                        [[-xy=<deployer>]... [-xyn=<name>]...]]

Options:
  -b, --basedir=<basedir>   Base directory.
  -c, --config-file=<configFile>
                            The config file.
  -D=<key=value>            Sets a System property. Repeatable.
      --dry-run             Skip remote operations.
  -g, --debug               Set log level to debug.
      -grs, --git-root-search
                            Searches for the Git root.
  -h, --help                Show this help message and exit.
  -i, --info                Set log level to info.
      -od, --output-directory=<outputdir>
                            Output directory.
  -P, --set-property=<key=value>
                            Sets the value of a property. Repeatable.
  -q, --quiet               Log errors only.
      -scp, --select-current-platform
                            Activates paths matching the current platform.
      -sp, --select-platform=<platform>
                            Activates paths matching the given platform.
                              Repeatable.
  -V, --version             Print version information and exit.
  -w, --warn                Set log level to warn.

Include Filter:
  -y, --deployer=<deployer> Include a deployer by type. Repeatable.
      -yn, --deployer-name=<name>
                            Include a deployer by name. Repeatable.

Exclude Filter:
      -xy, --exclude-deployer=<deployer>
                            Exclude a deployer by type. Repeatable.
      -xyn, --exclude-deployer-name=<name>
                            Exclude a deployer by name. Repeatable.

Documentation found at https://jreleaser.org

If --config-file is undefined then the command assumes the file is named jreleaser.[yml|toml|json] and it’s found at the current directory.

If --basedir is undefined then the command assumes it’s the same directory that contains the resolved config file.

The value of --deployer and --exclude-deployer must match the type of configured deployer.

The value of --deployer-name and --exclude-deployer-name must match any of the available named deployers.

Use --dry-run during development to verify your configuration settings. No network deploys nor repository mutations should occur when this mode is activated.

You may invoke this command in the following ways:

Deploy all artifacts:

$ jreleaser deploy

Deploy all artifacts to all configured Artifactory deployers:

$ jreleaser deploy --deployer artifactory

Deploy all artifacts with all deployers with matching name:

$ jreleaser deploy --deployer-name mine

Deploy all artifacts to a matching Artifactory deployer:

$ jreleaser deploy --deployer artifactory --deployer-name mine

upload

$ jreleaser upload -h
Upload all artifacts.

Usage: jreleaser upload [-ghiqVw] [--dry-run] [-grs] [-scp] [-b=<basedir>]
                        [-c=<configFile>] [-od=<outputdir>] [-D=<key=value>]...
                        [-P=<key=value>]... [-sp=<platform>]...
                        [[[-u=<uploader>]... [-un=<name>]...
                        [-d=<distribution>]...] | [[-xu=<uploader>]...
                        [-xun=<name>]... [-xd=<distribution>]...]]

Options:
  -b, --basedir=<basedir>   Base directory.
  -c, --config-file=<configFile>
                            The config file.
  -D=<key=value>            Sets a System property. Repeatable.
      --dry-run             Skip remote operations.
  -g, --debug               Set log level to debug.
      -grs, --git-root-search
                            Searches for the Git root.
  -h, --help                Show this help message and exit.
  -i, --info                Set log level to info.
      -od, --output-directory=<outputdir>
                            Output directory.
  -P, --set-property=<key=value>
                            Sets the value of a property. Repeatable.
  -q, --quiet               Log errors only.
      -scp, --select-current-platform
                            Activates paths matching the current platform.
      -sp, --select-platform=<platform>
                            Activates paths matching the given platform.
                              Repeatable.
  -V, --version             Print version information and exit.
  -w, --warn                Set log level to warn.

Include Filter:
  -d, --distribution=<distribution>
                            Include a distribution. Repeatable.
  -u, --uploader=<uploader> Include an uploader by type. Repeatable.
      -un, --uploader-name=<name>
                            Include an uploader by name. Repeatable.

Exclude Filter:
      -xd, --exclude-distribution=<distribution>
                            Exclude a distribution. Repeatable.
      -xu, --exclude-uploader=<uploader>
                            Exclude an uploader by type. Repeatable.
      -xun, --exclude-uploader-name=<name>
                            Exclude an uploader by name. Repeatable.

Documentation found at https://jreleaser.org

If --config-file is undefined then the command assumes the file is named jreleaser.[yml|toml|json] and it’s found at the current directory.

If --basedir is undefined then the command assumes it’s the same directory that contains the resolved config file.

The value of --uploader and --exclude-uploader-type must match the type of configured uploader.

The value of --uploader-name and --exclude-uploader-name must match any of the available named uploaders.

Use --dry-run during development to verify your configuration settings. No network uploads nor repository mutations should occur when this mode is activated.

You may invoke this command in the following ways:

Upload all artifacts:

$ jreleaser upload

Upload all artifacts to all configured Artifactory uploaders:

$ jreleaser upload --uploader-type artifactory

Upload all artifacts with all uploaders with matching name:

$ jreleaser upload --uploader-name mine

Upload all artifacts to a matching Artifactory uploader:

$ jreleaser upload --uploader-type artifactory --uploader-name mine

release

$ jreleaser release -h
Create or update a release.

Usage: jreleaser release [-ghiqVw] [--dry-run] [-grs] [-scp] [-b=<basedir>]
                         [-c=<configFile>] [-od=<outputdir>]
                         [-D=<key=value>]... [-P=<key=value>]...
                         [-sp=<platform>]... [[[-d=<distribution>]...
                         [-y=<deployer>]... [-yn=<name>]... [-u=<uploader>]...
                         [-un=<name>]...] | [[-xd=<distribution>]...
                         [-xy=<deployer>]... [-xyn=<name>]...
                         [-xu=<uploader>]... [-xun=<name>]...] |
                         [[--auto-config] [--project-name=<projectName>]
                         [--project-version=<projectVersion>]
                         [--project-version-pattern=<projectVersionPattern>]
                         [--project-snapshot-pattern=<projectSnapshotPattern>]
                         [--project-snapshot-label=<projectSnapshotLabel>]
                         [--project-snapshot-full-changelog]
                         [--project-copyright=<projectCopyright>]
                         [--project-description=<projectDescription>]
                         [--project-inception-year=<projectInceptionYear>]
                         [--project-stereotype=<projectStereotype>]
                         [--author=<author>]... [--tag-name=<tagName>]
                         [--previous-tag-name=<previousTagName>]
                         [--release-name=<releaseName>]
                         [--milestone-name=<milestoneName>] [--prerelease]
                         [--prerelease-pattern=<prereleasePattern>] [--draft]
                         [--overwrite] [--update]
                         [--update-section=<section>]... [--skip-tag]
                         [--skip-release] [--branch=<branch>]
                         [--changelog=<changelog>] [--changelog-formatted]
                         [--username=<username>]
                         [--commit-author-name=<commitAuthorName>]
                         [--commit-author-email=<commitAuthorEmail>]
                         [--signing-enabled] [--signing-armored]
                         [--file=<file>]... [--glob=<glob>]...]]

Options:
  -b, --basedir=<basedir>    Base directory.
  -c, --config-file=<configFile>
                             The config file.
  -D=<key=value>             Sets a System property. Repeatable.
      --dry-run              Skip remote operations.
  -g, --debug                Set log level to debug.
      -grs, --git-root-search
                             Searches for the Git root.
  -h, --help                 Show this help message and exit.
  -i, --info                 Set log level to info.
      -od, --output-directory=<outputdir>
                             Output directory.
  -P, --set-property=<key=value>
                             Sets the value of a property. Repeatable.
  -q, --quiet                Log errors only.
      -scp, --select-current-platform
                             Activates paths matching the current platform.
      -sp, --select-platform=<platform>
                             Activates paths matching the given platform.
                               Repeatable.
  -V, --version              Print version information and exit.
  -w, --warn                 Set log level to warn.

Include Filter:
  -d, --distribution=<distribution>
                             Include a distribution. Repeatable.
  -u, --uploader=<uploader>  Include an uploader by type. Repeatable.
      -un, --uploader-name=<name>
                             Include an uploader by name. Repeatable.
  -y, --deployer=<deployer>  Include a deployer by type. Repeatable.
      -yn, --deployer-name=<name>
                             Include a deployer by name. Repeatable.

Exclude Filter:
      -xd, --exclude-distribution=<distribution>
                             Exclude a distribution. Repeatable.
      -xu, --exclude-uploader=<uploader>
                             Exclude an uploader by type. Repeatable.
      -xun, --exclude-uploader-name=<name>
                             Exclude an uploader by name. Repeatable.
      -xy, --exclude-deployer=<deployer>
                             Exclude a deployer by type. Repeatable.
      -xyn, --exclude-deployer-name=<name>
                             Exclude a deployer by name. Repeatable.

Auto Config Options:
      --author=<author>      The project authors. Repeatable.
      --auto-config          Activate auto configuration.
      --branch=<branch>      The release branch.
      --changelog=<changelog>
                             Path to changelog file.
      --changelog-formatted  Format generated changelog.
      --commit-author-email=<commitAuthorEmail>
                             Commit author e-mail.
      --commit-author-name=<commitAuthorName>
                             Commit author name.
      --draft                If the release is a draft.
      --file=<file>          Input file to be uploaded. Repeatable.
      --glob=<glob>          Input file to be uploaded (as glob). Repeatable.
      --milestone-name=<milestoneName>
                             The milestone name.
      --overwrite            Overwrite an existing release.
      --prerelease           If the release is a prerelease.
      --prerelease-pattern=<prereleasePattern>
                             The prerelease pattern.
      --previous-tag-name=<previousTagName>
                             The previous release tag.
      --project-copyright=<projectCopyright>
                             The project copyright.
      --project-description=<projectDescription>
                             The project description.
      --project-inception-year=<projectInceptionYear>
                             The project inception year.
      --project-name=<projectName>
                             The project name.
      --project-snapshot-full-changelog
                             Calculate full changelog since last non-snapshot
                               release.
      --project-snapshot-label=<projectSnapshotLabel>
                             The project snapshot label.
      --project-snapshot-pattern=<projectSnapshotPattern>
                             The project snapshot pattern.
      --project-stereotype=<projectStereotype>
                             The project stereotype.
      --project-version=<projectVersion>
                             The project version.
      --project-version-pattern=<projectVersionPattern>
                             The project version pattern.
      --release-name=<releaseName>
                             The release name.
      --signing-armored      Generate ascii armored signatures.
      --signing-enabled      Sign files.
      --skip-release         Skip creating a release.
      --skip-tag             Skip tagging the release.
      --tag-name=<tagName>   The release tag.
      --update               Update an existing release.
      --update-section=<section>
                             Release section to be updated. Repeatable.
      --username=<username>  Git username.

Documentation found at https://jreleaser.org

There are two usage modes:

  • auto config

  • with explicit configuration file

AutoConfig

If --basedir is undefined then the command assumes it’s the same directory where the command is run.

The --file parameter is repeatable.

The --glob parameter must be quote, for example --glob "target/*.jar".

Explicit Configuration file

If --config-file is undefined then the command assumes the file is named jreleaser.[yml|toml|json] and it’s found at the current directory.

If --basedir is undefined then the command assumes it’s the same directory that contains the resolved config file.

The value of --distribution and --exclude-distribution must match the name of a configured distribution found in the distribution section.

None of the command flags that override model properties can be used in this mode.
Use --dry-run during development to verify your configuration settings. No network uploads nor repository mutations should occur when this mode is activated.

prepare

$ jreleaser prepare -h
Prepare all distributions.

Usage: jreleaser prepare [-ghiqVw] [-grs] [-scp] [-b=<basedir>]
                         [-c=<configFile>] [-od=<outputdir>]
                         [-D=<key=value>]... [-P=<key=value>]...
                         [-sp=<platform>]... [[[-d=<distribution>]...
                         [-p=<packager>]...] | [[-xd=<distribution>]...
                         [-xp=<packager>]...]]

Options:
  -b, --basedir=<basedir>   Base directory.
  -c, --config-file=<configFile>
                            The config file.
  -D=<key=value>            Sets a System property. Repeatable.
  -g, --debug               Set log level to debug.
      -grs, --git-root-search
                            Searches for the Git root.
  -h, --help                Show this help message and exit.
  -i, --info                Set log level to info.
      -od, --output-directory=<outputdir>
                            Output directory.
  -P, --set-property=<key=value>
                            Sets the value of a property. Repeatable.
  -q, --quiet               Log errors only.
      -scp, --select-current-platform
                            Activates paths matching the current platform.
      -sp, --select-platform=<platform>
                            Activates paths matching the given platform.
                              Repeatable.
  -V, --version             Print version information and exit.
  -w, --warn                Set log level to warn.

Include Filter:
  -d, --distribution=<distribution>
                            Include a distribution. Repeatable.
  -p, --packager=<packager> Include a packager. Repeatable.

Exclude Filter:
      -xd, --exclude-distribution=<distribution>
                            Exclude a distribution. Repeatable.
      -xp, --exclude-packager=<packager>
                            Exclude a packager. Repeatable.

Documentation found at https://jreleaser.org

If --config-file is undefined then the command assumes the file is named jreleaser.[yml|toml|json] and it’s found at the current directory.

If --basedir is undefined then the command assumes it’s the same directory that contains the resolved config file.

The value of --distribution and --exclude-distribution must match the name of a configured distribution.

The value of --packager and --exclude-packager must match any of the available Packagers.

You may invoke this command in the following ways:

Prepare all distributions:

$ jreleaser prepare

Prepare a single distribution with all configured tools:

$ jreleaser prepare --distribution-name app

Prepare all distributions with a single tool:

$ jreleaser prepare --packager-name brew

Prepare a single distribution with a single tool:

$ jreleaser prepare --distribution-name app --packager-name brew

package

$ jreleaser package -h
Package all distributions.

Usage: jreleaser package [-ghiqVw] [--dry-run] [-grs] [-scp] [-b=<basedir>]
                         [-c=<configFile>] [-od=<outputdir>]
                         [-D=<key=value>]... [-P=<key=value>]...
                         [-sp=<platform>]... [[[-d=<distribution>]...
                         [-p=<packager>]...] | [[-xd=<distribution>]...
                         [-xp=<packager>]...]]

Options:
  -b, --basedir=<basedir>   Base directory.
  -c, --config-file=<configFile>
                            The config file.
  -D=<key=value>            Sets a System property. Repeatable.
      --dry-run             Skip remote operations.
  -g, --debug               Set log level to debug.
      -grs, --git-root-search
                            Searches for the Git root.
  -h, --help                Show this help message and exit.
  -i, --info                Set log level to info.
      -od, --output-directory=<outputdir>
                            Output directory.
  -P, --set-property=<key=value>
                            Sets the value of a property. Repeatable.
  -q, --quiet               Log errors only.
      -scp, --select-current-platform
                            Activates paths matching the current platform.
      -sp, --select-platform=<platform>
                            Activates paths matching the given platform.
                              Repeatable.
  -V, --version             Print version information and exit.
  -w, --warn                Set log level to warn.

Include Filter:
  -d, --distribution=<distribution>
                            Include a distribution. Repeatable.
  -p, --packager=<packager> Include a packager. Repeatable.

Exclude Filter:
      -xd, --exclude-distribution=<distribution>
                            Exclude a distribution. Repeatable.
      -xp, --exclude-packager=<packager>
                            Exclude a packager. Repeatable.

Documentation found at https://jreleaser.org

If --config-file is undefined then the command assumes the file is named jreleaser.[yml|toml|json] and it’s found at the current directory.

If --basedir is undefined then the command assumes it’s the same directory that contains the resolved config file.

The value of --distribution and --exclude-distribution must match the name of a configured distribution.

The value of --packager and --exclude-packager must match any of the available Packagers.

You may invoke this command in the following ways:

Package all distributions:

$ jreleaser package

Package a single distribution with all configured tools:

$ jreleaser package --distribution-name app

Package all distributions with a single tool:

$ jreleaser package --packager-name brew

Package a single distribution with a single tool:

$ jreleaser package --distribution-name app --packager-name brew
Use --dry-run during development to verify your configuration settings. No network uploads nor repository mutations should occur when this mode is activated.

publish

$ jreleaser publish -h
Publish all distributions.

Usage: jreleaser publish [-ghiqVw] [--dry-run] [-grs] [-scp] [-b=<basedir>]
                         [-c=<configFile>] [-od=<outputdir>]
                         [-D=<key=value>]... [-P=<key=value>]...
                         [-sp=<platform>]... [[[-d=<distribution>]...
                         [-p=<packager>]...] | [[-xd=<distribution>]...
                         [-xp=<packager>]...]]

Options:
  -b, --basedir=<basedir>   Base directory.
  -c, --config-file=<configFile>
                            The config file.
  -D=<key=value>            Sets a System property. Repeatable.
      --dry-run             Skip remote operations.
  -g, --debug               Set log level to debug.
      -grs, --git-root-search
                            Searches for the Git root.
  -h, --help                Show this help message and exit.
  -i, --info                Set log level to info.
      -od, --output-directory=<outputdir>
                            Output directory.
  -P, --set-property=<key=value>
                            Sets the value of a property. Repeatable.
  -q, --quiet               Log errors only.
      -scp, --select-current-platform
                            Activates paths matching the current platform.
      -sp, --select-platform=<platform>
                            Activates paths matching the given platform.
                              Repeatable.
  -V, --version             Print version information and exit.
  -w, --warn                Set log level to warn.

Include Filter:
  -d, --distribution=<distribution>
                            Include a distribution. Repeatable.
  -p, --packager=<packager> Include a packager. Repeatable.

Exclude Filter:
      -xd, --exclude-distribution=<distribution>
                            Exclude a distribution. Repeatable.
      -xp, --exclude-packager=<packager>
                            Exclude a packager. Repeatable.

Documentation found at https://jreleaser.org

If --config-file is undefined then the command assumes the file is named jreleaser.[yml|toml|json] and it’s found at the current directory.

If --basedir is undefined then the command assumes it’s the same directory that contains the resolved config file.

The value of --distribution and --exclude-distribution must match the name of a configured distribution.

The value of --packager and --exclude-packager must match any of the available Packagers.

You may invoke this command in the following ways:

Publish all distributions:

$ jreleaser publish

Publish a single distribution with all configured tools:

$ jreleaser publish --distribution-name app

Publish all distributions with a single tool:

$ jreleaser publish --packager-name brew

Publish a single distribution with a single tool:

$ jreleaser publish --distribution-name app --packager-name brew
Use --dry-run during development to verify your configuration settings. No network uploads nor repository mutations should occur when this mode is activated.

announce

$ jreleaser announce -h
Announce a release.

Usage: jreleaser announce [-ghiqVw] [--dry-run] [-grs] [-scp] [-b=<basedir>]
                          [-c=<configFile>] [-od=<outputdir>]
                          [-D=<key=value>]... [-P=<key=value>]...
                          [-sp=<platform>]... [[[-a=<announcer>]...] |
                          [[-xa=<announcer>]...]]

Options:
  -b, --basedir=<basedir>   Base directory.
  -c, --config-file=<configFile>
                            The config file.
  -D=<key=value>            Sets a System property. Repeatable.
      --dry-run             Skip remote operations.
  -g, --debug               Set log level to debug.
      -grs, --git-root-search
                            Searches for the Git root.
  -h, --help                Show this help message and exit.
  -i, --info                Set log level to info.
      -od, --output-directory=<outputdir>
                            Output directory.
  -P, --set-property=<key=value>
                            Sets the value of a property. Repeatable.
  -q, --quiet               Log errors only.
      -scp, --select-current-platform
                            Activates paths matching the current platform.
      -sp, --select-platform=<platform>
                            Activates paths matching the given platform.
                              Repeatable.
  -V, --version             Print version information and exit.
  -w, --warn                Set log level to warn.

Include Filter:
  -a, --announcer=<announcer>
                            Include an announcer. Repeatable.

Exclude Filter:
      -xa, --exclude-announcer=<announcer>
                            Exclude an announcer. Repeatable.

Documentation found at https://jreleaser.org

If --config-file is undefined then the command assumes the file is named jreleaser.[yml|toml|json] and it’s found at the current directory.

If --basedir is undefined then the command assumes it’s the same directory that contains the resolved config file.

The value of --announcer and --exclude-announcer must match any of the available announcers.

You may invoke this command in the following ways:

Announce with all configured announcers:

$ jreleaser announce

Announce with a single announcer:

$ jreleaser announce --announcer-name brew
Use --dry-run during development to verify your configuration settings. No network uploads nor repository mutations should occur when this mode is activated.

full-release

$ jreleaser full-release -h
Perform a full release.

Usage: jreleaser full-release [-ghiqVw] [--dry-run] [-grs] [-scp]
                              [-b=<basedir>] [-c=<configFile>]
                              [-od=<outputdir>] [-D=<key=value>]...
                              [-P=<key=value>]... [-sp=<platform>]...
                              [[[-y=<deployer>]... [-yn=<name>]...
                              [-u=<uploader>]... [-un=<name>]...
                              [-d=<distribution>]... [-p=<packager>]...
                              [-a=<announcer>]...] | [[-xy=<deployer>]...
                              [-xyn=<name>]... [-xu=<uploader>]...
                              [-xun=<name>]... [-xd=<distribution>]...
                              [-xp=<packager>]... [-xa=<announcer>]...]]

Options:
  -b, --basedir=<basedir>   Base directory.
  -c, --config-file=<configFile>
                            The config file.
  -D=<key=value>            Sets a System property. Repeatable.
      --dry-run             Skip remote operations.
  -g, --debug               Set log level to debug.
      -grs, --git-root-search
                            Searches for the Git root.
  -h, --help                Show this help message and exit.
  -i, --info                Set log level to info.
      -od, --output-directory=<outputdir>
                            Output directory.
  -P, --set-property=<key=value>
                            Sets the value of a property. Repeatable.
  -q, --quiet               Log errors only.
      -scp, --select-current-platform
                            Activates paths matching the current platform.
      -sp, --select-platform=<platform>
                            Activates paths matching the given platform.
                              Repeatable.
  -V, --version             Print version information and exit.
  -w, --warn                Set log level to warn.

Include Filter:
  -a, --announcer=<announcer>
                            Include an announcer. Repeatable.
  -d, --distribution=<distribution>
                            Include a distribution. Repeatable.
  -p, --packager=<packager> Include a packager. Repeatable.
  -u, --uploader=<uploader> Include an uploader by type. Repeatable.
      -un, --uploader-name=<name>
                            Include an uploader by name. Repeatable.
  -y, --deployer=<deployer> Include a deployer by type. Repeatable.
      -yn, --deployer-name=<name>
                            Include a deployer by name. Repeatable.

Exclude Filter:
      -xa, --exclude-announcer=<announcer>
                            Exclude an announcer. Repeatable.
      -xd, --exclude-distribution=<distribution>
                            Exclude a distribution. Repeatable.
      -xp, --exclude-packager=<packager>
                            Exclude a packager. Repeatable.
      -xu, --exclude-uploader=<uploader>
                            Exclude an uploader by type. Repeatable.
      -xun, --exclude-uploader-name=<name>
                            Exclude an uploader by name. Repeatable.
      -xy, --exclude-deployer=<deployer>
                            Exclude a deployer by type. Repeatable.
      -xyn, --exclude-deployer-name=<name>
                            Exclude a deployer by name. Repeatable.

Documentation found at https://jreleaser.org

If --config-file is undefined then the command assumes the file is named jreleaser.[yml|toml|json] and it’s found at the current directory.

If --basedir is undefined then the command assumes it’s the same directory that contains the resolved config file.

Use --dry-run during development to verify your configuration settings. No network uploads nor repository mutations should occur when this mode is activated.

generate-completion

$ jreleaser jreleaser generate-completion -h
JReleaser is a release automation tool for Java projects.

Usage: jreleaser generate-completion [-hV]
Generate bash/zsh completion script for jreleaser.
Run the following command to give `jreleaser` TAB completion in the current
shell:

  source <(jreleaser generate-completion)


Options:
  -h, --help      Show this help message and exit.
  -V, --version   Print version information and exit.

Documentation found at https://jreleaser.org

json-schema

$ jreleaser json-schema -h
Generate JSON schema.

Usage: jreleaser json-schema [-hV] [-D=<key=value>]...

Options:
  -D=<key=value>    Sets a System property. Repeatable.
  -h, --help        Show this help message and exit.
  -V, --version     Print version information and exit.

Documentation found at https://jreleaser.org