Command Line

Once JReleaser is installed you may initialize its config file by invoking the following command:

$ jreleaser init --format yml
[INFO]  Writing file /Home/duke/app/jreleaser.yml
[INFO]  JReleaser initialized at /Home/duke/app
JReleaser supports the following formats: yml, toml, json.

This generates a jreleaser.yml file with the following configuration

jreleaser.yml
project:
  name: app
  version: 1.0.0-SNAPSHOT
  description: Awesome App
  longDescription: Awesome App
  website: https://acme.com/app
  authors:
    - Duke
  license: Apache-2
  java:
    groupId: com.acme
    version: 8
  extraProperties:
    inceptionYear: 2021

release:
  github:
    owner: duke

distributions:
  app:
    artifacts:
      - path: path/to/{{distributionName}}-{{projectVersion}}.zip

Edit the file to suite your needs. JReleaser does not create artifact files for you. It assumes those are created using other tools; JReleaser only cares if the resolved artifact paths exist. Once you have edited the file you may verify its configuration by invoking

$ jreleaser config

At any time you may invoke any of the other commands, but when it’s time to make a release you have to invoke

$ jreleaser full-release
[INFO]  JReleaser 0.5.0
[INFO]  Configuring with jreleaser.yml
[INFO]    - basedir set to /Home/duke/app
[INFO]  Reading configuration
[INFO]  Loading properties from /Home/duke/.jreleaser/config.properties
[INFO]  Validating configuration
[INFO]  Project version set to 1.0.0
[INFO]  Release is not snapshot
[INFO]  Timestamp is 2021-03-28T12:25:16.219+02:00
[INFO]  HEAD is at c3e39f1
[INFO]  dryrun set to false
[INFO]  Generating changelog: out/jreleaser/release/CHANGELOG.md
[INFO]  Calculating checksums
[INFO]    [checksum] target/distributions/app/app-1.0.0.zip
[INFO]  Signing files
[INFO]  Signing is not enabled. Skipping
[INFO]  Uploading is not enabled. Skipping.
[INFO]  Releasing to https://github.com/duke/app
[INFO]   - Uploading app-1.0.0.zip
[INFO]   - Uploading checksums.txt
[INFO]  Preparing distributions
[INFO]    - Preparing app distribution
[INFO]  Packaging distributions
[INFO]    - Packaging app distribution
[INFO]  Publishing distributions
[INFO]    - Publishing app distribution
[INFO]  Announcing release
[INFO]  Announcing is not enabled. Skipping.
[INFO]  JReleaser succeeded after 0.894s
[INFO]  Writing output properties to out/jreleaser/output.properties

This command performs the following actions:

  • checksums all artifacts.

  • signs all files (if signing is enabled).

  • creates a release at the chosen Git repository.

  • prepares, packages, and uploads configured packagers (brew, jbang, etc).

  • announces the release (if configured).