#
+assemble:
+ #
+ deb:
+ # Assemblers require a name.
+ #
+ app:
+
+ # Enables or disables the assembler.
+ # Supported values are [`NEVER`, `ALWAYS`, `RELEASE`, `SNAPSHOT`].
+ # Defaults to `NEVER`.
+ #
+ active: ALWAYS
+
+ # Export the assembled artifacts as a matching named distribution.
+ # Defaults to `true`.
+ #
+ exported: true
+
+ # The stereotype of this assembler.
+ # Supported values are [`NONE`, `CLI`, `DESKTOP`, `WEB`, `MOBILE`].
+ # Defaults to `#{project.stereotype}`.
+ #
+ stereotype: CLI
+
+ # Additional properties used when evaluating templates.
+ #
+ extraProperties:
+ # Key will be capitalized and prefixed with `deb`, i.e, `debFoo`.
+ foo: bar
+
+ #
+ platform:
+ # Key value pairs.
+ # Keys match a full platform or an os.name, os.arch.
+ # Same rules apply as in Platform.
+ #
+ replacements:
+ osx-x86_64: mac
+ aarch_64: aarch64
+ x86_64: amd64
+ linux_musl: alpine
+
+ # Name of the executable launcher.
+ # If left undefined, will use `#{assembler.name}`.
+ #
+ executable: app
+
+ # Target architexture.
+ # Valid values as defined by `dpkg-architecture -L` such as `all`, `aamd64`, etc.
+ #
+ architecture: all
+
+ # Target path where files will be installed.
+ #
+ installationPath: '/opt/{{packageName}}'
+
+ # References assembled artifacts from another assembler.
+ #
+ assemblerRef: 'app-archive'
+
+ # Defines values for control fields
+ # See https://www.debian.org/doc/debian-policy/ch-controlfields.html
+ #
+ control:
+
+ # Name of the package.
+ # Defaults to `#{assembler.name}`.
+ # https://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-package
+ #
+ packageName: app
+
+ # Package version.
+ # Defaults to `#{project.version}`.
+ # https://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-version
+ #
+ packageVersion: 1.0.0
+
+ # Package revision.
+ # Defaults to `#{project.version}`.
+ # https://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-version
+ #
+ packageRevision: 1
+
+ # Virtual package name.
+ # Defaults to `#{assembler.name}`.
+ # https://www.debian.org/doc/debian-policy/ch-controlfields.html#package-interrelationship-fields-depends-pre-depends-recommends-suggests-breaks-conflicts-provides-replaces-enhances
+ #
+ provides: app
+
+ # The package maintainer’s name and email address.
+ # https://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-maintainer
+ #
+ maintainer: Duke <duke@acme.com>
+
+ # Specifies an application area into which the package has been classified.
+ # Defaults to `misc`.
+ # https://www.debian.org/doc/debian-policy/ch-controlfields.html#section
+ #
+ section: devel
+
+ # How important it is that the user have the package installed.
+ # Defaults to `optional`.
+ # https://www.debian.org/doc/debian-policy/ch-controlfields.html#priority
+ #
+ priority: optional
+
+ # Is it an essential (non-removable) package or not.
+ # Defaults to `false`.
+ # https://www.debian.org/doc/debian-policy/ch-controlfields.html#essential
+ #
+ essential: true
+
+ # The package's description.
+ # Defaults to `#{project.longDescription}`.
+ # https://www.debian.org/doc/debian-policy/ch-controlfields.html#description
+ #
+ description: Sample application
+
+ # The URL of the web site for this package.
+ # Defaults to `#{project.links.website}`.
+ # https://www.debian.org/doc/debian-policy/ch-controlfields.html#homepage
+ #
+ homepage: https://github.com/duke/app
+
+ # Additional source packages used to build the binary.
+ # https://www.debian.org/doc/debian-policy/ch-relationships.html#s-built-using
+ #
+ builtUsing: 'gcc-4.6 (= 4.6.0-11)'
+
+ # Dependencies may be defined as a list of packages
+ # https://www.debian.org/doc/debian-policy/ch-relationships.html#s-binarydeps
+ #
+ depends:
+ - foo
+ preDepends:
+ - bar
+ recommends:
+ - foobar
+ suggests:
+ - foobar
+ enhances:
+ - foofy
+ breaks:
+ - foofoo
+ conflicts:
+ - barbar
+
+ # Directory with file templates used to prepare the assembler.
+ # Defaults to `src/jreleaser/assemblers/#{distribution.name}/deb`.
+ # If specified, path must exist.
+ #
+ templateDirectory: path/to/deb/templates
+
+ # List of template files to be skipped.
+ # Value may be an exact match or a regex.
+ #
+ skipTemplates:
+ - README.md.tpl
+
+ # Defines a list of additional files as artifacts.
+ # These files will be added to the assembled archive.
+ #
+ artifacts:
+ - path: path/to/file
+ - path: path/to/another_file
+ transform: path/inside/archive
+ - path: path/to/platform/specific/file
+ platform: osx-x86_64
+
+ # Defines a list of additional files as globs.
+ # These files will be added to the assembled archive.
+ #
+ files:
+ # The pattern to use.
+ # May use glob or regex pattern syntax.
+ #
+ - pattern: path/to/**/*.txt
+
+ #
+ fileSets:
+ # The input directory to copy files from.
+ #
+ - input: path/to/input/directory
+
+ # The target path inside the archive.
+ # If left undefined, defaults to the root of the archive.
+ #
+ output: path/to/archive/entry
+
+ # Fail if the given `input` does not exist.
+ # Defaults to `true`.
+ #
+ failOnMissingInput: false
+
+ # A set of files and directory to include.
+ #
+ includes:
+ - 'name_or_regex'
+
+ # A set of files and directory to exclude.
+ #
+ excludes:
+ - 'name_or_regex'
+
+ # Additional properties used when evaluating templates.
+ #
+ extraProperties:
+ # Key will be capitalized and prefixed with `artifact`, i.e, `artifactFoo`.
+ foo: bar
+
+
+
+
+
+
+
# Assemblers require a name.
+#
+[assemble.deb.app]
+
+ # Enables or disables the assembler.
+ # Supported values are [`NEVER`, `ALWAYS`, `RELEASE`, `SNAPSHOT`].
+ # Defaults to `NEVER`.
+ #
+ active = "ALWAYS"
+
+ # Export the assembled artifacts as a matching named distribution.
+ # Defaults to `true`.
+ #
+ exported = true
+
+ # The stereotype of this assembler.
+ # Supported values are [`NONE`, `CLI`, `DESKTOP`, `WEB`, `MOBILE`].
+ # Defaults to `#{project.stereotype}`.
+ #
+ stereotype = "CLI"
+
+ # Additional properties used when evaluating templates.
+ #
+ extraProperties.foo = "bar"
+ # Key will be capitalized and prefixed with `deb`, i.e, `debFoo`.
+
+ # Key value pairs.
+ # Keys match a full platform or an os.name, os.arch.
+ # Same rules apply as in Platform.
+ #
+ [assemble.deb.app.platform.replacements]
+ osx-x86_64 = "mac"
+ aarch_64 = "aarch64"
+ x86_64 = "amd64"
+ linux_musl = "alpine"
+
+ # Name of the executable launcher.
+ # If left undefined, will use `#{assembler.name}`.
+ #
+ executable = "app"
+
+ # Target architexture.
+ # Valid values as defined by `dpkg-architecture -L` such as `all`, `aamd64`, etc.
+ #
+ architecture = "all"
+
+ # Target path where files will be installed.
+ #
+ installationPath = "/opt/{{packageName}}"
+
+ # References assembled artifacts from another assembler.
+ #
+ assemblerRef = "app-archive"
+
+ # Defines values for control fields
+ # See https://www.debian.org/doc/debian-policy/ch-controlfields.html
+
+ # Name of the package.
+ # Defaults to `#{assembler.name}`.
+ # https://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-package
+ #
+ control.packageName = "app"
+
+ # Package version.
+ # Defaults to `#{project.version}`.
+ # https://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-version
+ #
+ control.packageVersion = "1.0.0"
+
+ # Package revision.
+ # Defaults to `#{project.version}`.
+ # https://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-version
+ #
+ control.packageRevision = 1
+
+ # Virtual package name.
+ # Defaults to `#{assembler.name}`.
+ # https://www.debian.org/doc/debian-policy/ch-controlfields.html#package-interrelationship-fields-depends-pre-depends-recommends-suggests-breaks-conflicts-provides-replaces-enhances
+ #
+ control.provides = "app"
+
+ # The package maintainer’s name and email address.
+ # https://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-maintainer
+ #
+ control.maintainer = "Duke <duke@acme.com>"
+
+ # Specifies an application area into which the package has been classified.
+ # Defaults to `misc`.
+ # https://www.debian.org/doc/debian-policy/ch-controlfields.html#section
+ #
+ control.section = "devel"
+
+ # How important it is that the user have the package installed.
+ # Defaults to `optional`.
+ # https://www.debian.org/doc/debian-policy/ch-controlfields.html#priority
+ #
+ control.priority = "optional"
+
+ # Is it an essential (non-removable) package or not.
+ # Defaults to `false`.
+ # https://www.debian.org/doc/debian-policy/ch-controlfields.html#essential
+ #
+ control.essential = true
+
+ # The package's description.
+ # Defaults to `#{project.longDescription}`.
+ # https://www.debian.org/doc/debian-policy/ch-controlfields.html#description
+ #
+ control.description = "Sample application"
+
+ # The URL of the web site for this package.
+ # Defaults to `#{project.links.website}`.
+ # https://www.debian.org/doc/debian-policy/ch-controlfields.html#homepage
+ #
+ control.homepage = "https://github.com/duke/app"
+
+ # Additional source packages used to build the binary.
+ # https://www.debian.org/doc/debian-policy/ch-relationships.html#s-built-using
+ #
+ control.builtUsing = "gcc-4.6 (= 4.6.0-11)"
+
+ # Dependencies may be defined as a list of packages
+ # https://www.debian.org/doc/debian-policy/ch-relationships.html#s-binarydeps
+ #
+ control.depends = ["foo"]
+ control.preDepends = ["bar"]
+ control.recommends = ["foobar"]
+ control.suggests = ["foobar"]
+ control.enhances = ["foofy"]
+ control.breaks = ["foofoo"]
+ control.conflicts = ["barbar"]
+
+ # Directory with file templates used to prepare the assembler.
+ # Defaults to `src/jreleaser/assemblers/#{distribution.name}/deb`.
+ # If specified, path must exist.
+ #
+ templateDirectory = "path/to/deb/templates"
+
+ # List of template files to be skipped.
+ # Value may be an exact match or a regex.
+ #
+ skipTemplates = [ "README.md.tpl" ]
+
+ # Defines a list of additional files as artifacts.
+ # These files will be added to the assembled archive.
+ #
+ [[assemble.deb.app.artifacts]]
+ path = "path/to/file"
+ [[assemble.deb.app.artifacts]]
+ path = "path/to/another_file"
+ transform = "path/inside/archive"
+ [[assemble.deb.app.artifacts]]
+ path = "path/to/platform/specific/file"
+ platform = "osx-x86_64"
+
+ # Defines a list of additional files as globs.
+ # These files will be added to the assembled archive.
+ #
+ [[assemble.deb.app.files]]
+ # The pattern to use.
+ # May use glob or regex pattern syntax.
+ #
+ pattern = "path/to/**/*.txt"
+
+ #
+ [[assemble.deb.app.fileSets]]
+ # The input directory to copy files from.
+ #
+ input = "path/to/input/directory"
+
+ # The target path inside the archive.
+ # If left undefined, defaults to the root of the archive.
+ #
+ output = "path/to/archive/entry"
+
+ # Fail if the given `input` does not exist.
+ # Defaults to `true`.
+ #
+ failOnMissingInput = false
+
+ # A set of files and directory to include.
+ #
+ includes = ["name_or_regex"]
+
+ # A set of files and directory to exclude.
+ #
+ excludes = ["name_or_regex"]
+
+ # Additional properties used when evaluating templates.
+ #
+ [[assemble.deb.app.fileSets.extraProperties]]
+ # Key will be capitalized and prefixed with `artifact`, i.e, `artifactFoo`.
+ foo: bar
+
+
+
+
+
+
+
{
+ //
+ "assemble": {
+ //
+ "deb": {
+ // Assemblers require a name.
+ //
+ "app": {
+
+ // Enables or disables the assembler.
+ // Supported values are [`NEVER`, `ALWAYS`, `RELEASE`, `SNAPSHOT`].
+ // Defaults to `NEVER`.
+ //
+ "active": "ALWAYS",
+
+ // Export the assembled artifacts as a matching named distribution.
+ // Defaults to `true`.
+ //
+ "exported": true,
+
+ // The stereotype of this assembler.
+ // Supported values are [`NONE`, `CLI`, `DESKTOP`, `WEB`, `MOBILE`].
+ // Defaults to `#{project.stereotype}`.
+ //
+ "stereotype": "CLI",
+
+ // Additional properties used when evaluating templates.
+ //
+ "extraProperties": {
+ // Key will be capitalized and prefixed with `deb`, i.e, `debFoo`.
+ "foo": "bar"
+ },
+
+ //
+ platform: {
+ // Key value pairs.
+ // Keys match a full platform or an os.name, os.arch.
+ // Same rules apply as in Platform.
+ //
+ "replacements": {
+ "osx-x86_64": "mac",
+ "aarch_64": "aarch64",
+ "x86_64": "amd64",
+ "linux_musl": "alpine"
+ }
+ },
+
+ // Name of the executable launcher.
+ // If left undefined, will use `#{assembler.name}`.
+ //
+ "executable": "app",
+
+ // Target architexture.
+ // Valid values as defined by `dpkg-architecture -L` such as `all`, `aamd64`, etc.
+ //
+ "architecture": "all",
+
+ // Target path where files will be installed.
+ //
+ "installationPath": "/opt/{{packageName}}",
+
+ // References assembled artifacts from another assembler.
+ //
+ "assemblerRef": "app-archive",
+
+ // Defines values for control fields
+ // See https://www.debian.org/doc/debian-policy/ch-controlfields.html
+ //
+ "control": {
+
+ // Name of the package.
+ // Defaults to `//{assembler.name}`.
+ // https://www.debian.org/doc/debian-policy/ch-controlfields.html//s-f-package
+ //
+ "packageName": "app",
+
+ // Package version.
+ // Defaults to `//{project.version}`.
+ // https://www.debian.org/doc/debian-policy/ch-controlfields.html//s-f-version
+ //
+ "packageVersion": "1.0.0",
+
+ // Package revision.
+ // Defaults to `//{project.version}`.
+ // https://www.debian.org/doc/debian-policy/ch-controlfields.html//s-f-version
+ //
+ "packageRevision": "1",
+
+ // Virtual package name.
+ // Defaults to `//{assembler.name}`.
+ // https://www.debian.org/doc/debian-policy/ch-controlfields.html//package-interrelationship-fields-depends-pre-depends-recommends-suggests-breaks-conflicts-provides-replaces-enhances
+ //
+ "provides": "app",
+
+ // The package maintainer’s name and email address.
+ // https://www.debian.org/doc/debian-policy/ch-controlfields.html//s-f-maintainer
+ //
+ "maintainer": "Duke <duke@acme.com>",
+
+ // Specifies an application area into which the package has been classified.
+ // Defaults to `misc`.
+ // https://www.debian.org/doc/debian-policy/ch-controlfields.html//section
+ //
+ "section": "devel",
+
+ // How important it is that the user have the package installed.
+ // Defaults to `optional`.
+ // https://www.debian.org/doc/debian-policy/ch-controlfields.html//priority
+ //
+ "priority": "optional",
+
+ // Is it an essential (non-removable) package or not.
+ // Defaults to `false`.
+ // https://www.debian.org/doc/debian-policy/ch-controlfields.html//essential
+ //
+ "essential": true,
+
+ // The package's description.
+ // Defaults to `//{project.longDescription}`.
+ // https://www.debian.org/doc/debian-policy/ch-controlfields.html//description
+ //
+ "description": "Sample application",
+
+ // The URL of the web site for this package.
+ // Defaults to `//{project.links.website}`.
+ // https://www.debian.org/doc/debian-policy/ch-controlfields.html//homepage
+ //
+ "homepage": "https://github.com/duke/app"
+
+ // Additional source packages used to build the binary.
+ // https://www.debian.org/doc/debian-policy/ch-relationships.html//s-built-using
+ //
+ "builtUsing": "gcc-4.6 (= 4.6.0-11)",
+
+ // Dependencies may be defined as a list of packages
+ // https://www.debian.org/doc/debian-policy/ch-relationships.html//s-binarydeps
+ //
+ "depends": ["foo"],
+ "preDepends": ["bar"],
+ "recommends": ["foobar"],
+ "suggests": ["foobar"],
+ "enhances": ["foofy"],
+ "breaks": ["foofoo"],
+ "conflicts": ["barbar"]
+ },
+
+ // Directory with file templates used to prepare the assembler.
+ // Defaults to `src/jreleaser/assemblers/#$#{distribution.name}/deb`.
+ // If specified, path must exist.
+ //
+ "templateDirectory": "path/to/deb/templates",
+
+ // List of template files to be skipped.
+ // Value may be an exact match or a regex.
+ //
+ "skipTemplates": [
+ "README.md.tpl"
+ ],
+
+ // Defines a list of additional files as artifacts.
+ // These files will be added to the assembled archive.
+ //
+ "artifacts": [
+ {
+ "path": "path/to/file"
+ },
+ {
+ "path": "path/to/another_file",
+ "transform": "path/inside/archive"
+ },
+ {
+ "path": "path/to/platform/specific/file",
+ "platform": "osx-x86_64"
+ }
+ ] ,
+
+ // Defines a list of additional files as globs.
+ // These files will be added to the assembled archive.
+ //
+ "files": [
+ {
+ // The pattern to use.
+ // May use glob or regex pattern syntax.
+ //
+ "pattern": "path/to/**/*.txt"
+ }
+ ],
+
+ //
+ "fileSets": [
+ {
+ // The input directory to copy files from.
+ //
+ "input": "path/to/input/directory",
+
+ // The target path inside the archive.
+ // If left undefined, defaults to the root of the archive.
+ //
+ "output": "path/to/archive/entry",
+
+ // Fail if the given `input` does not exist.
+ // Defaults to `true`.
+ //
+ "failOnMissingInput": false,
+
+ // A set of files and directory to include.
+ //
+ "includes": ["name_or_regex"],
+
+ // A set of files and directory to exclude.
+ //
+ "excludes": ["name_or_regex"],
+
+ // Additional properties used when evaluating templates.
+ //
+ "extraProperties": {
+ // Key will be capitalized and prefixed with `artifact`, i.e, `artifactFoo`.
+ "foo": "bar"
+ }
+ }
+ ],
+
+ }
+ }
+ }
+}
+
+
+
+
+
+
+
<jreleaser>
+ <!--
+
+ -->
+ <assemble>
+ <!--
+
+ -->
+ <deb>
+ <!--
+ Assemblers require a name.
+
+ -->
+ <app>
+ <!--
+ Enables or disables the distribution.
+ Supported values are [`NEVER`, `ALWAYS`, `RELEASE`, `SNAPSHOT`].
+ Defaults to `ALWAYS`.
+
+ -->
+ <active>ALWAYS</active>
+
+ <!--
+ Export the assembled artifacts as a matching named distribution.
+ Defaults to `true`.
+
+ -->
+ <exported>true</exported>
+
+ <!--
+ The stereotype of this assembler.
+ Supported values are [`NONE`, `CLI`, `DESKTOP`, `WEB`, `MOBILE`].
+ Defaults to `#{project.stereotype}`.
+
+ -->
+ <stereotype>CLI</stereotype>
+
+ <!--
+ Additional properties used when evaluating templates.
+
+ -->
+ <extraProperties>
+ <!--
+ Key will be capitalized and prefixed with `deb`, i.e, `debFoo`.
+ -->
+ <foo>bar</foo>
+ </extraProperties>
+
+ <!--
+
+ -->
+ <platform>
+
+ <!--
+ Key value pairs.
+ Keys match a full platform or an os.name, os.arch.
+ Same rules apply as in Platform.
+
+ -->
+ <replacements>
+ <osx-x86_64>mac</osx-x86_64>
+ <aarch_64>aarch64</aarch_64>
+ <x86_64>amd64</x86_64>
+ <linux_musl>alpine</linux_musl>
+ </replacements>
+ </platform>
+
+ <!--
+ Name of the executable launcher.
+ If left undefined, will use `#{assembler.name}`.
+
+ -->
+ <executable>app</executable>
+
+ Target architexture.
+ Valid values as defined by `dpkg-architecture -L` such as `all`, `aamd64`, etc.
+
+ <architecture>all</architecture>
+
+ Target path where files will be installed.
+
+ <installationPath>/opt/{{packageName}}</installationPath>
+
+ References assembled artifacts from another assembler.
+
+ <assemblerRef>app-archive</assemblerRef>
+
+ Defines values for control fields
+ See https://www.debian.org/doc/debian-policy/ch-controlfields.html
+
+ <control>
+
+ Name of the package.
+ Defaults to ` {assembler.name}`.
+ link:https://www.debian.org/doc/debian-policy/ch-controlfields.html s-f-package[]
+
+ <packageName>ap</packageName>
+
+ Package version.
+ Defaults to ` {project.version}`.
+ link:https://www.debian.org/doc/debian-policy/ch-controlfields.html s-f-version[]
+
+ <packageVersion>1.0.0</packageVersion>
+
+ Package revision.
+ Defaults to ` {project.version}`.
+ link:https://www.debian.org/doc/debian-policy/ch-controlfields.html s-f-version[]
+
+ <packageRevision>1</packageRevision>
+
+ Virtual package name.
+ Defaults to ` {assembler.name}`.
+ link:https://www.debian.org/doc/debian-policy/ch-controlfields.html package-interrelationship-fields-depends-pre-depends-recommends-suggests-breaks-conflicts-provides-replaces-enhances[]
+
+ <provides>app</provides>
+
+ The package maintainer’s name and email address.
+ https://www.debian.org/doc/debian-policy/ch-controlfields.html s-f-maintainer[]
+
+ <maintainer>Duke <duke@acme.com></maintainer>
+
+ Specifies an application area into which the package has been classified.
+ Defaults to `misc`.
+ link:https://www.debian.org/doc/debian-policy/ch-controlfields.html section[]
+
+ <section>devel</section>
+
+ How important it is that the user have the package installed.
+ Defaults to `optional`.
+ link:https://www.debian.org/doc/debian-policy/ch-controlfields.html priority[]
+
+ <priority>optional</priority>
+
+ Is it an essential (non-removable) package or not.
+ Defaults to `false`.
+ link:https://www.debian.org/doc/debian-policy/ch-controlfields.html essential[]
+
+ <essential>true</essential>
+
+ The package's description.
+ Defaults to ` {project.longDescription}`.
+ link:https://www.debian.org/doc/debian-policy/ch-controlfields.html description[]
+
+ <description>Sample application</description>
+
+ The URL of the web site for this package.
+ Defaults to ` {project.links.website}`.
+ link:https://www.debian.org/doc/debian-policy/ch-controlfields.html homepage[]
+
+ <homepage>https://github.com/duke/app</homepage>
+
+ Additional source packages used to build the binary.
+ link:https://www.debian.org/doc/debian-policy/ch-relationships.html s-built-using[]
+
+ <builtUsing>gcc-4.6 (= 4.6.0-11)</builtUsing>
+
+ Dependencies may be defined as a list of packages
+ https://www.debian.org/doc/debian-policy/ch-relationships.html s-binarydeps
+
+ <depends>
+ <dependency>foo</dependency>
+ </depends>
+ <preDepends>
+ <dependency>bar</dependency>
+ </preDepends>
+ <recommends>
+ <dependency>foobar</dependency>
+ </recommends>
+ <suggests>
+ <dependency>foobar</dependency>
+ </suggests>
+ <enhances>
+ <dependency>foofy</dependency>
+ </enhances>
+ <breaks>
+ <dependency>foofoo</dependency>
+ </breaks>
+ <conflicts>
+ <dependency>barbar</dependency>
+ </conflicts>
+ </control>
+
+ <!--
+ Directory with file templates used to prepare the assembler.
+ Defaults to `src/jreleaser/assemblers/#{distribution.name}/deb`.
+ If specified, path must exist.
+
+ -->
+ <templateDirectory>path/to/deb/templates</templateDirectory>
+
+ <!--
+ List of template files to be skipped.
+ Value may be an exact match or a regex.
+
+ -->
+ <skipTemplates>
+ <skipTemplate>README.md.tpl</skipTemplate>
+ </skipTemplates>
+
+ <!--
+ Defines a list of additional files as artifacts.
+ These files will be added to the assembled archive.
+
+ -->
+ <artifacts>
+ <artifact>
+ <path>path/to/file</path>
+ </artifact>
+ <artifact>
+ <path>path/to/another_file</path>
+ <transform>path/inside/archive</transform>
+ </artifact>
+ <artifact>
+ <path>path/to/platform/specific/file</path>
+ <platform>osx-x86_64</platform>
+ </artifact>
+ </artifacts>
+
+ <!--
+ Defines a list of additional files as globs.
+ These files will be added to the assembled archive.
+
+ -->
+ <files>
+ <file>
+ <!--
+ The pattern to use.
+ May use glob or regex pattern syntax.
+
+ -->
+ <pattern>path/to/**/*.txt</pattern>
+ </file>
+ </files>
+
+ <!--
+
+ -->
+ <fileSets>
+ <fileSet>
+ <!--
+ The input directory to copy files from.
+
+ -->
+ <input>path/to/input/directory</input>
+
+ <!--
+ The target path inside the archive.
+ If left undefined, defaults to the root of the archive.
+
+ -->
+ <output>path/to/archive/entry</output>
+
+ <!--
+ Fail if the given `input` does not exist.
+ Defaults to `true`.
+
+ -->
+ <failOnMissingInput>false</failOnMissingInput>
+
+ <!--
+ A set of files and directory to include.
+
+ -->
+ <includes>
+ <include>name_or_regex</include>
+ </includes>
+
+ <!--
+ A set of files and directory to exclude.
+
+ -->
+ <excludes>
+ <exclude>name_or_regex</exclude>
+ </excludes>
+
+ <!--
+ Additional properties used when evaluating templates.
+
+ -->
+ <extraProperties>
+ <!--
+ Key will be capitalized and prefixed with `artifact`, i.e, `artifactFoo`.
+ -->
+ <foo>bar</foo>
+ </extraProperties>
+ </fileSet>
+ </fileSets>
+
+ </app>
+ </deb>
+ </assemble>
+</jreleaser>
+
+
+
+
+
+
+
jreleaser {
+ //
+ assemble {
+ //
+ deb {
+ // Assemblers require a name.
+ //
+ app {
+
+ // Enables or disables the assembler.
+ // Supported values are [`NEVER`, `ALWAYS`, `RELEASE`, `SNAPSHOT`].
+ // Defaults to `NEVER`.
+ //
+ active = 'ALWAYS'
+
+ // Export the assembled artifacts as a matching named distribution.
+ // Defaults to `true`.
+ //
+ exported = true
+
+ // The stereotype of this assembler.
+ // Supported values are [`NONE`, `CLI`, `DESKTOP`, `WEB`, `MOBILE`].
+ // Defaults to `#{project.stereotype}`.
+ //
+ stereotype = 'CLI'
+
+ // Additional properties used when evaluating templates.
+ // Key will be capitalized and prefixed with `deb`, i.e, `debFoo`.
+ //
+ extraProperties.put('foo', 'bar')
+
+ //
+ platform {
+
+ // Key value pairs.
+ // Keys match a full platform or an os.name, os.arch.
+ // Same rules apply as in Platform.
+ //
+ replacements = [
+ 'osx-x86_64': 'mac',
+ aarch_64: 'aarch64',
+ x86_64: 'amd64',
+ linux_musl: 'alpine'
+ ]
+ }
+
+ // Name of the executable launcher.
+ // If left undefined, will use `#{assembler.name}`.
+ //
+ executable = 'app'
+
+ // Target architexture.
+ // Valid values as defined by `dpkg-architecture -L` such as `all`, `aamd64`, etc.
+ //
+ architecture = 'all'
+
+ // Target path where files will be installed.
+ //
+ installationPath = '/opt/{{packageName}}'
+
+ // References assembled artifacts from another assembler.
+ //
+ assemblerRef = 'app-archive'
+
+ // Defines values for control fields
+ // See https://www.debian.org/doc/debian-policy/ch-controlfields.html
+ //
+ control {
+
+ // Name of the package.
+ // Defaults to `//{assembler.name}`.
+ // https://www.debian.org/doc/debian-policy/ch-controlfields.html//s-f-package
+ //
+ packageName = "app"
+
+ // Package version.
+ // Defaults to `//{project.version}`.
+ // https://www.debian.org/doc/debian-policy/ch-controlfields.html//s-f-version
+ //
+ packageVersion = '1.0.0'
+
+ // Package revision.
+ // Defaults to `//{project.version}`.
+ // https://www.debian.org/doc/debian-policy/ch-controlfields.html//s-f-version
+ //
+ packageRevision = 1
+
+ // Virtual package name.
+ // Defaults to `//{assembler.name}`.
+ // https://www.debian.org/doc/debian-policy/ch-controlfields.html//package-interrelationship-fields-depends-pre-depends-recommends-suggests-breaks-conflicts-provides-replaces-enhances
+ //
+ provides = 'app'
+
+ // The package maintainer’s name and email address.
+ // https://www.debian.org/doc/debian-policy/ch-controlfields.html//s-f-maintainer
+ //
+ maintainer = 'Duke <duke@acme.com>'
+
+ // Specifies an application area into which the package has been classified.
+ // Defaults to `misc`.
+ // https://www.debian.org/doc/debian-policy/ch-controlfields.html//section
+ //
+ section = 'devel'
+
+ // How important it is that the user have the package installed.
+ // Defaults to `optional`.
+ // https://www.debian.org/doc/debian-policy/ch-controlfields.html//priority
+ //
+ priority = 'optional'
+
+ // Is it an essential (non-removable) package or not.
+ // Defaults to `false`.
+ // https://www.debian.org/doc/debian-policy/ch-controlfields.html//essential
+ //
+ essential = true
+
+ // The package's description.
+ // Defaults to `//{project.longDescription}`.
+ // https://www.debian.org/doc/debian-policy/ch-controlfields.html//description
+ //
+ description = 'Sample application'
+
+ // The URL of the web site for this package.
+ // Defaults to `//{project.links.website}`.
+ // https://www.debian.org/doc/debian-policy/ch-controlfields.html//homepage
+ //
+ homepage = 'https://github.com/duke/app'
+
+ // Additional source packages used to build the binary.
+ // https://www.debian.org/doc/debian-policy/ch-relationships.html//s-built-using
+ //
+ builtUsing = 'gcc-4.6 (= 4.6.0-11)'
+
+ // Dependencies may be defined as a list of packages
+ // https://www.debian.org/doc/debian-policy/ch-relationships.html//s-binarydeps
+ //
+ depends = ['foo']
+ preDepends = ['bar']
+ recommends = ['foobar']
+ suggests = ['foobar']
+ enhances = ['foofy']
+ breaks = ['foofoo']
+ conflicts = ['barbar']
+ }
+
+ // Directory with file templates used to prepare the assembler.
+ // Defaults to `src/jreleaser/assemblers/#{distribution.name}/deb`.
+ // If specified, path must exist.
+ //
+ templateDirectory = 'path/to/deb/templates'
+
+ // List of template files to be skipped.
+ // Value may be an exact match or a regex.
+ //
+ skipTemplate('README.md.tpl')
+
+ // Defines a list of additional files as artifacts.
+ // These files will be added to the assembled archive.
+ //
+ artifact {
+ path = 'path/to/file'
+ }
+ artifact {
+ path = 'path/to/another_file'
+ transform = 'path/inside/archive'
+ }
+ artifact {
+ path = 'path/to/platform/specific/file'
+ platform = 'osx-x86_64'
+ }
+
+ // Defines a list of additional files as globs.
+ // These files will be added to the assembled archive.
+ //
+ files {
+ // The pattern to use.
+ // May use glob or regex pattern syntax.
+ //
+ pattern = 'path/to/**/*.txt'
+ }
+
+ //
+ fileSet {
+ // The input directory to copy files from.
+ //
+ input = 'path/to/input/directory'
+
+ // The target path inside the archive.
+ // If left undefined, defaults to the root of the archive.
+ //
+ output = 'path/to/archive/entry'
+
+ // Fail if the given `input` does not exist.
+ // Defaults to `true`.
+ //
+ failOnMissingInput = false
+
+ // A set of files and directory to include.
+ //
+ includes = ['name_or_regex']
+
+ // A set of files and directory to exclude.
+ //
+ excludes = ['name_or_regex']
+
+ // Additional properties used when evaluating templates.
+ // Key will be capitalized and prefixed with `artifact`, i.e, `artifactFoo`.
+ //
+ extraProperties.put('foo', 'bar')
+ }
+
+ }
+ }
+ }
+}
+
+
+
+
+
+
+
+
+
Environment
+
+
+
When not explicitly set, the value of the following properties may be resolved from an environment variable or a system
+property as shown in the table. The system property takes precedence over the environment variable.
+Substitute ${name} for the value of the named instance.
+
+
+
+
+
+
Space (' '), underscore (_), and dash (-) will be replaced by dot (.) to separate tokens in the System property.
+Space (' '), dash (-), and dot (.) will be replaced by underscore (_) to separate tokens in the environment variable,
+such that:
+
+
+
+
+
+
+
+
+
+
${name}
+
System Property
+
Environment Variable
+
+
+
+
+
foobar
+
foobar
+
FOOBAR
+
+
+
fooBar
+
foobar
+
FOOBAR
+
+
+
foo bar
+
foo.bar
+
FOO_BAR
+
+
+
foo-bar
+
foo.bar
+
FOO_BAR
+
+
+
foo_bar
+
foo.bar
+
FOO_BAR
+
+
+
foo.bar
+
foo.bar
+
FOO_BAR
+
+
+
+
+
+
+
Templates
+
+
+
The default location for templates is:
+
+
+
src/jreleaser/assemblers/<distribution-name>/deb
+
+
+
The following list shows the filenames that may be used to override default templates:
+
+
+
+
+
control/control.tpl
+
+
+
control/postinst.tpl
+
+
+
control/postrm.tpl
+
+
+
control/preinst.tpl
+
+
+
control/prerm.tpl
+
+
+
+
+
Any additional files found in the template directories will be copied as is unless their filename ends with .tpl in
+which case Name Templates substitution will take place.
+
+
+
+
+
Skip Templates
+
+
+
You may skip any template files by defining a set of skip rules in the skipTemplates property. For example, you may use
+any of these expressions to skip a template named README.md.tpl:
+
+
+
+
+
README.md.tpl: matches the full template name
+
+
+
README.md: matches the transformed template name
+
+
+
README.*: matches using a regex
+
+
+
+
+
+
+
Additional Files
+
+
+
There are several ways to define additional files that may be handled by this assembler.
+
+
+
Templates
+
+
+
+
You may use Name Templates inside the files to be copied.
+
+
+
They retain directory structure that is, a template found at {templateDirectory}/foo.txt.tpl will be copied as
+foo.txt while a template such as {templateDirectory}/docs/bar.md.tpl will be copied to docs/bar.md.
+
+
+
+
+
+
FileSets
+
+
+
+
May use globs or regexes to define files to be included from a starting directory.
+
+
+
They retain directory structure.
+
+
+
May rename the target parent directory.
+
+
+
+
+
+
Files
+
+
+
+
May use globs or regexes to define files to be included from a starting directory.
+
+
+
They do not retain directory structure. Only filenames are copied.
+
+
+
+
+
+
Artifacts
+
+
+
+
They do not retain directory structure by default. An artifact with path set to bin/launcher.sh will be copied
+to launcher.sh.
+
+
+
May use the transform property to define the target path. An artifact with path set to bin/launcher.sh and transform
+set to bin/{{projectName}} will be copied to bin/app [assuming projectName resolves to app].
+
+
+
May use the platform property to filter files per matching platform. An artifact with platform set to windows-x86_64
+will only be copied when the matching platform is compatible with windows-x86_64.
+
+
+
Artifacts without an explicit platform won’t be filtered.