Packagers

After a release is created at the desired remote Git host, JReleaser can generate and publish specialized packagers into their respective distribution media, such a Git repository you have access to, or a packager store.

The sections defined here can be applied globally (for all distributions) or per distribution. Global configuration is inherited by distributions. Here’s for example how Homebrew and Scoop can be activated for all distributions:

  • YAML

  • TOML

  • JSON

  • Maven

  • Gradle

packagers:
  brew:
    active: ALWAYS
  scoop:
    active: ALWAYS
[packagers]
  brew.active = "ALWAYS"
  scoop.active = "ALWAYS"
{
  "packagers": {
     "brew": {
       "active": "ALWAYS"
     },
     "scoop": {
       "active": "ALWAYS"
     }
  }
}
<jreleaser>
  <packagers>
    <brew>
      <active>ALWAYS</active>
    </brew>
    <scoop>
      <active>ALWAYS</active>
    </scoop>
  </packagers>
</jreleaser>
jreleaser {
  packagers {
    brew {
      active = 'ALWAYS'
    }
    scoop {
      active = 'ALWAYS'
    }
  }
}

Given this setup here’s how a distribution may inherit that configuration and disable Scoop while keeping Homebrew active:

  • YAML

  • TOML

  • JSON

  • Maven

  • Gradle

packagers:
  brew:
    active: ALWAYS
  scoop:
    active: ALWAYS

distributions:
  app:
    scoop:
      active: NEVER
[packagers]
  brew.active = "ALWAYS"
  scoop.active = "ALWAYS"

[distributions.app]
  scoop.active = "NEVER"
{
  "packagers": {
     "brew": {
       "active": "ALWAYS"
     },
     "scoop": {
       "active": "ALWAYS"
     }
  },
  "distributions": {
    "app": {
      "scoop": {
        "active": "NEVER"
      }
    }
  }
}
<jreleaser>
  <packagers>
    <brew>
      <active>ALWAYS</active>
    </brew>
    <scoop>
      <active>ALWAYS</active>
    </scoop>
  </packagers>
  <distributions>
    <app>
      <scoop>
        <active>NEVER</active>
      </scoop>
    </app>
  </distributions>
</jreleaser>
jreleaser {
  packagers {
    brew {
      active = 'ALWAYS'
    }
    scoop {
      active = 'ALWAYS'
    }
  }
  distributions {
    app {
      scoop {
        active = 'NEVER'
      }
    }
  }
}
Values set at the packagers level may be overridden with those set at the distributions level.