JReleaser CLI

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

$ jreleaser -h
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.
  assemble             Assemble distributions.
  changelog            Calculate the changelog.
  checksum             Calculate checksums.
  sign                 Sign release 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.

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 [-afghiqVw] [-grs] [-scp] [-b=<basedir>]
                        [-c=<configFile>] [-od=<outputdir>] [-D=<key=value>]...
                        [-P=<key=value>]... [-sp=<platform>]...

Options:
  -a, --assembly            Display assembly configuration.
  -b, --basedir=<basedir>   Base directory.
  -c, --config-file=<configFile>
                            The config file.
  -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 [-ghioqsVw] [-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.
  -s, --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.

assemble

$ jreleaser assemble -h
Assemble distributions.

Usage: jreleaser assemble [-ghiqVw] [-grs] [-b=<basedir>] [-c=<configFile>]
                          [-od=<outputdir>] [-D=<key=value>]...
                          [-P=<key=value>]... [[[-a=<assembler>]...
                          [-d=<distribution>]...] | [[-xa=<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.
  -V, --version             Print version information and exit.
  -w, --warn                Set log level to warn.

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

Exclude Filter:
      -xa, --exclude-assembler=<assembler>
                            Exclude an assembler. Repeatable.
      -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 --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 of the assmeblers 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>
                          [-d=<distribution>]... | -xd=<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.

Filter:
  -d, --distribution=<distribution>
                            Include a distribution. Repeatable.
      -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>
                      [-d=<distribution>]... | -xd=<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.

Filter:
  -d, --distribution=<distribution>
                            Include a distribution. Repeatable.
      -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.

upload

$ jreleaser upload -h
Upload all artifacts.

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

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.
  -y, --dryrun              Skip remote operations.

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

Exclude Filter:
      -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 a configured uploader.

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

Use -y or --dryrun 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 [-ghiqVwy] [-grs] [-scp] [-b=<basedir>]
                         [-c=<configFile>] [-od=<outputdir>]
                         [-D=<key=value>]... [-P=<key=value>]...
                         [-sp=<platform>]... [[[-d=<distribution>]...] |
                         [[-xd=<distribution>]...] | [[--auto-config]
                         [--project-name=<projectName>]
                         [--project-version=<projectVersion>]
                         [--project-version-pattern=<projectVersionPattern>]
                         [--project-snapshot-pattern=<projectSnapshotPattern>]
                         [--project-snapshot-label=<projectSnapshotLabel>]
                         [--project-snapshot-full-changelog]
                         [--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.
  -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.
  -y, --dryrun               Skip remote operations.

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

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

Auto Config Options:
      --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-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-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 -y or --dryrun 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 [-ghiqVwy] [-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.
  -y, --dryrun              Skip remote operations.

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 -y or --dryrun 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 [-ghiqVwy] [-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.
  -y, --dryrun              Skip remote operations.

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 -y or --dryrun 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 [-ghiqVwy] [-grs] [-scp] [-b=<basedir>]
                          [-c=<configFile>] [-od=<outputdir>]
                          [-D=<key=value>]... [-P=<key=value>]...
                          [-sp=<platform>]... [-a=<announcer>
                          [-a=<announcer>]... | -xa=<announcer>
                          [-xa=<announcer>]...]

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.
  -y, --dryrun              Skip remote operations.

Filter:
  -a, --announcer=<announcer>
                            Include an announcer. Repeatable.
      -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 -y or --dryrun 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 [-ghiqVwy] [-grs] [-scp] [-b=<basedir>]
                              [-c=<configFile>] [-od=<outputdir>]
                              [-D=<key=value>]... [-P=<key=value>]...
                              [-sp=<platform>]...

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.
  -y, --dryrun              Skip remote operations.

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 -y or --dryrun during development to verify your configuration settings. No network uploads nor repository mutations should occur when this mode is activated.