From 0f0868187e80bf6b9d2bf0587baee9b4ca542ab7 Mon Sep 17 00:00:00 2001 From: Andres Almiray Date: Tue, 17 Dec 2024 16:15:44 +0100 Subject: [PATCH] Document https://github.com/jreleaser/jreleaser/issues/1240 --- docs/modules/ROOT/pages/integrations.adoc | 1 + docs/modules/reference/nav.adoc | 1 + .../reference/pages/assemble/archive.adoc | 5 + .../modules/reference/pages/assemble/deb.adoc | 841 ++++++++++++++++++ .../reference/pages/assemble/index.adoc | 1 + .../pages/assemble/java-archive.adoc | 5 + docs/modules/reference/pages/matrix.adoc | 2 +- 7 files changed, 855 insertions(+), 1 deletion(-) create mode 100644 docs/modules/reference/pages/assemble/deb.adoc diff --git a/docs/modules/ROOT/pages/integrations.adoc b/docs/modules/ROOT/pages/integrations.adoc index fd16759ea..602df04b6 100644 --- a/docs/modules/ROOT/pages/integrations.adoc +++ b/docs/modules/ROOT/pages/integrations.adoc @@ -16,6 +16,7 @@ Files may be downloaded from the following services: Distributions may be assembled using your build tool of choice, also with any of the following assemblers: * xref:reference:assemble/archive.adoc[] + * xref:reference:assemble/deb.adoc[] * xref:reference:assemble/java-archive.adoc[] * xref:reference:assemble/jlink.adoc[] * xref:reference:assemble/jpackage.adoc[] diff --git a/docs/modules/reference/nav.adoc b/docs/modules/reference/nav.adoc index ba8a9338c..c2d1d6bb0 100644 --- a/docs/modules/reference/nav.adoc +++ b/docs/modules/reference/nav.adoc @@ -23,6 +23,7 @@ *** xref:announce/zulip.adoc[] ** xref:assemble/index.adoc[] *** xref:assemble/archive.adoc[] +*** xref:assemble/deb.adoc[] *** xref:assemble/java-archive.adoc[] *** xref:assemble/jlink.adoc[] *** xref:assemble/jpackage.adoc[] diff --git a/docs/modules/reference/pages/assemble/archive.adoc b/docs/modules/reference/pages/assemble/archive.adoc index 5b68d5b80..a50528c30 100644 --- a/docs/modules/reference/pages/assemble/archive.adoc +++ b/docs/modules/reference/pages/assemble/archive.adoc @@ -420,6 +420,7 @@ YAML:: ---- project: version: 1.0.0 + name: app description: Sample application authors: - Duke @@ -448,6 +449,7 @@ TOML:: ---- [project] version = "1.0.0" + name = "app" description = "Sample application" authors = [ "Duke" ] inceptionYear = "2020" @@ -473,6 +475,7 @@ JSON:: { "project": { "version": "1.0.0", + "name": "app", "description": "Sample application", "authors": [ "Duke" ], "inceptionYear": "2020" @@ -508,6 +511,7 @@ Maven:: 1.0.0 + app Sample application Duke 2020 @@ -548,6 +552,7 @@ Gradle:: jreleaser { project { version = '1.0.0' + name = 'app' description = 'Sample application' author('Duke') inceptionYear: '2020' diff --git a/docs/modules/reference/pages/assemble/deb.adoc b/docs/modules/reference/pages/assemble/deb.adoc new file mode 100644 index 000000000..4a68948b2 --- /dev/null +++ b/docs/modules/reference/pages/assemble/deb.adoc @@ -0,0 +1,841 @@ += Debian +:assembler_id: deb +:archive: true +:platform: true +:assembler_sys_key: deb +:assembler_env_key: DEB +:group_sys_key: assemble +:group_env_key: ASSEMBLE +:actor_sys_key: {assembler_sys_key} +:actor_env_key: {assembler_env_key} + +Creates `.deb` packages from archives and files. + +== Configuration + +include::partial$legend.adoc[] + +[tabs] +==== +YAML:: ++ +-- +[source,yaml] +[subs="+macros,attributes"] +---- +include::partial$assemble/yaml/common-head.adoc[] + + # Name of the executable launcher. + # If left undefined, will use `#{assembler.name}`. + # icon:dot-circle[] + executable: app + + # Target architexture. + # Valid values as defined by `dpkg-architecture -L` such as `all`, `aamd64`, etc. + # icon:exclamation-triangle[] + architecture: all + + # Target path where files will be installed. + # icon:dot-circle[] icon:file-alt[] + installationPath: '/opt/{{packageName}}' + + # References assembled artifacts from another assembler. + # icon:dot-circle[] + assemblerRef: 'app-archive' + + # Defines values for control fields + # See link:https://www.debian.org/doc/debian-policy/ch-controlfields.html[] + # icon:exclamation-triangle[] + control: + + # Name of the package. + # Defaults to `#{assembler.name}`. + # link:https://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-package[] + # icon:dot-circle[] + packageName: app + + # Package version. + # Defaults to `#{project.version}`. + # link:https://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-version[] + # icon:dot-circle[] + packageVersion: 1.0.0 + + # Package revision. + # Defaults to `#{project.version}`. + # link:https://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-version[] + # icon:dot-circle[] + packageRevision: 1 + + # 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[] + # icon:dot-circle[] + provides: app + + # The package maintainer’s name and email address. + # https://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-maintainer[] + # icon:exclamation-triangle[] + maintainer: Duke + + # 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[] + # icon:dot-circle[] + section: devel + + # 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[] + # icon:dot-circle[] + priority: optional + + # Is it an essential (non-removable) package or not. + # Defaults to `false`. + # link:https://www.debian.org/doc/debian-policy/ch-controlfields.html#essential[] + # icon:dot-circle[] + essential: true + + # The package's description. + # Defaults to `#{project.longDescription}`. + # link:https://www.debian.org/doc/debian-policy/ch-controlfields.html#description[] + # icon:dot-circle[] + description: Sample application + + # 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[] + # icon:dot-circle[] + homepage: pass:[https://github.com/duke/app] + + # Additional source packages used to build the binary. + # link:https://www.debian.org/doc/debian-policy/ch-relationships.html#s-built-using[] + # icon:dot-circle[] + 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 + # icon:dot-circle[] + depends: + - foo + preDepends: + - bar + recommends: + - foobar + suggests: + - foobar + enhances: + - foofy + breaks: + - foofoo + conflicts: + - barbar +include::partial$assemble/yaml/common-assembler.adoc[] +---- +-- +TOML:: ++ +-- +[source,toml] +[subs="+macros,attributes"] +---- +include::partial$assemble/toml/common-head.adoc[] + + # Name of the executable launcher. + # If left undefined, will use `#{assembler.name}`. + # icon:dot-circle[] + executable = "app" + + # Target architexture. + # Valid values as defined by `dpkg-architecture -L` such as `all`, `aamd64`, etc. + # icon:exclamation-triangle[] + architecture = "all" + + # Target path where files will be installed. + # icon:dot-circle[] icon:file-alt[] + installationPath = "/opt/{{packageName}}" + + # References assembled artifacts from another assembler. + # icon:dot-circle[] + assemblerRef = "app-archive" + + # Defines values for control fields + # See link:https://www.debian.org/doc/debian-policy/ch-controlfields.html[] + + # Name of the package. + # Defaults to `#{assembler.name}`. + # link:https://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-package[] + # icon:dot-circle[] + control.packageName = "app" + + # Package version. + # Defaults to `#{project.version}`. + # link:https://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-version[] + # icon:dot-circle[] + control.packageVersion = "1.0.0" + + # Package revision. + # Defaults to `#{project.version}`. + # link:https://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-version[] + # icon:dot-circle[] + control.packageRevision = 1 + + # 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[] + # icon:dot-circle[] + control.provides = "app" + + # The package maintainer’s name and email address. + # https://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-maintainer[] + # icon:exclamation-triangle[] + control.maintainer = "Duke " + + # 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[] + # icon:dot-circle[] + control.section = "devel" + + # 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[] + # icon:dot-circle[] + control.priority = "optional" + + # Is it an essential (non-removable) package or not. + # Defaults to `false`. + # link:https://www.debian.org/doc/debian-policy/ch-controlfields.html#essential[] + # icon:dot-circle[] + control.essential = true + + # The package's description. + # Defaults to `#{project.longDescription}`. + # link:https://www.debian.org/doc/debian-policy/ch-controlfields.html#description[] + # icon:dot-circle[] + control.description = "Sample application" + + # 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[] + # icon:dot-circle[] + control.homepage = "pass:[https://github.com/duke/app]" + + # Additional source packages used to build the binary. + # link:https://www.debian.org/doc/debian-policy/ch-relationships.html#s-built-using[] + # icon:dot-circle[] + 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 + # icon:dot-circle[] + control.depends = ["foo"] + control.preDepends = ["bar"] + control.recommends = ["foobar"] + control.suggests = ["foobar"] + control.enhances = ["foofy"] + control.breaks = ["foofoo"] + control.conflicts = ["barbar"] + +include::partial$assemble/toml/common-assembler.adoc[] +---- +-- +JSON:: ++ +-- +[source,json] +[subs="+macros,attributes"] +---- +include::partial$assemble/json/common-head.adoc[] + + // Name of the executable launcher. + // If left undefined, will use `#{assembler.name}`. + // icon:dot-circle[] + "executable": "app", + + // Target architexture. + // Valid values as defined by `dpkg-architecture -L` such as `all`, `aamd64`, etc. + // icon:exclamation-triangle[] + "architecture": "all", + + // Target path where files will be installed. + // icon:dot-circle[] icon:file-alt[] + "installationPath": "/opt/{{packageName}}", + + // References assembled artifacts from another assembler. + // icon:dot-circle[] + "assemblerRef": "app-archive", + + // Defines values for control fields + // See link:https://www.debian.org/doc/debian-policy/ch-controlfields.html[] + // icon:exclamation-triangle[] + "control": { + + // Name of the package. + // Defaults to `//{assembler.name}`. + // link:https://www.debian.org/doc/debian-policy/ch-controlfields.html//s-f-package[] + // icon:dot-circle[] + "packageName": "app", + + // Package version. + // Defaults to `//{project.version}`. + // link:https://www.debian.org/doc/debian-policy/ch-controlfields.html//s-f-version[] + // icon:dot-circle[] + "packageVersion": "1.0.0", + + // Package revision. + // Defaults to `//{project.version}`. + // link:https://www.debian.org/doc/debian-policy/ch-controlfields.html//s-f-version[] + // icon:dot-circle[] + "packageRevision": "1", + + // 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[] + // icon:dot-circle[] + "provides": "app", + + // The package maintainer’s name and email address. + // https://www.debian.org/doc/debian-policy/ch-controlfields.html//s-f-maintainer[] + // icon:exclamation-triangle[] + "maintainer": "Duke ", + + // 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[] + // icon:dot-circle[] + "section": "devel", + + // 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[] + // icon:dot-circle[] + "priority": "optional", + + // Is it an essential (non-removable) package or not. + // Defaults to `false`. + // link:https://www.debian.org/doc/debian-policy/ch-controlfields.html//essential[] + // icon:dot-circle[] + "essential": true, + + // The package's description. + // Defaults to `//{project.longDescription}`. + // link:https://www.debian.org/doc/debian-policy/ch-controlfields.html//description[] + // icon:dot-circle[] + "description": "Sample application", + + // 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[] + // icon:dot-circle[] + "homepage": "pass:[https://github.com/duke/app]" + + // Additional source packages used to build the binary. + // link:https://www.debian.org/doc/debian-policy/ch-relationships.html//s-built-using[] + // icon:dot-circle[] + "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 + // icon:dot-circle[] + "depends": ["foo"], + "preDepends": ["bar"], + "recommends": ["foobar"], + "suggests": ["foobar"], + "enhances": ["foofy"], + "breaks": ["foofoo"], + "conflicts": ["barbar"] + }, + +include::partial$assemble/json/common-assembler.adoc[] + +include::partial$assemble/json/common-footer.adoc[] +---- +-- +Maven:: ++ +-- +[source,xml] +[subs="+macros,attributes,verbatim"] +---- +include::partial$assemble/maven/common-head.adoc[] + + + app + + Target architexture. + Valid values as defined by `dpkg-architecture -L` such as `all`, `aamd64`, etc. + icon:exclamation-triangle[] + all + + Target path where files will be installed. + icon:dot-circle[] icon:file-alt[] + /opt/{{packageName}} + + References assembled artifacts from another assembler. + icon:dot-circle[] + app-archive + + Defines values for control fields + See link:https://www.debian.org/doc/debian-policy/ch-controlfields.html[] + icon:exclamation-triangle[] + + + Name of the package. + Defaults to ` {assembler.name}`. + link:https://www.debian.org/doc/debian-policy/ch-controlfields.html s-f-package[] + icon:dot-circle[] + ap + + Package version. + Defaults to ` {project.version}`. + link:https://www.debian.org/doc/debian-policy/ch-controlfields.html s-f-version[] + icon:dot-circle[] + 1.0.0 + + Package revision. + Defaults to ` {project.version}`. + link:https://www.debian.org/doc/debian-policy/ch-controlfields.html s-f-version[] + icon:dot-circle[] + 1 + + 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[] + icon:dot-circle[] + app + + The package maintainer’s name and email address. + https://www.debian.org/doc/debian-policy/ch-controlfields.html s-f-maintainer[] + icon:exclamation-triangle[] + Duke <duke@acme.com> + + 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[] + icon:dot-circle[] +
devel
+ + 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[] + icon:dot-circle[] + optional + + Is it an essential (non-removable) package or not. + Defaults to `false`. + link:https://www.debian.org/doc/debian-policy/ch-controlfields.html essential[] + icon:dot-circle[] + true + + The package's description. + Defaults to ` {project.longDescription}`. + link:https://www.debian.org/doc/debian-policy/ch-controlfields.html description[] + icon:dot-circle[] + Sample application + + 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[] + icon:dot-circle[] + pass:[https://github.com/duke/app] + + Additional source packages used to build the binary. + link:https://www.debian.org/doc/debian-policy/ch-relationships.html s-built-using[] + icon:dot-circle[] + 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 + icon:dot-circle[] + + foo + + + bar + + + foobar + + + foobar + + + foofy + + + foofoo + + + barbar + +
+ +include::partial$assemble/maven/common-assembler.adoc[] + +include::partial$assemble/maven/common-footer.adoc[] +---- +-- +Gradle:: ++ +-- +[source,groovy] +[subs="+macros,attributes"] +---- +include::partial$assemble/gradle/common-head.adoc[] + + // Name of the executable launcher. + // If left undefined, will use `#{assembler.name}`. + // icon:dot-circle[] + executable = 'app' + + // Target architexture. + // Valid values as defined by `dpkg-architecture -L` such as `all`, `aamd64`, etc. + // icon:exclamation-triangle[] + architecture = 'all' + + // Target path where files will be installed. + // icon:dot-circle[] icon:file-alt[] + installationPath = '/opt/{{packageName}}' + + // References assembled artifacts from another assembler. + // icon:dot-circle[] + assemblerRef = 'app-archive' + + // Defines values for control fields + // See link:https://www.debian.org/doc/debian-policy/ch-controlfields.html[] + // icon:exclamation-triangle[] + control { + + // Name of the package. + // Defaults to `//{assembler.name}`. + // link:https://www.debian.org/doc/debian-policy/ch-controlfields.html//s-f-package[] + // icon:dot-circle[] + packageName = "app" + + // Package version. + // Defaults to `//{project.version}`. + // link:https://www.debian.org/doc/debian-policy/ch-controlfields.html//s-f-version[] + // icon:dot-circle[] + packageVersion = '1.0.0' + + // Package revision. + // Defaults to `//{project.version}`. + // link:https://www.debian.org/doc/debian-policy/ch-controlfields.html//s-f-version[] + // icon:dot-circle[] + packageRevision = 1 + + // 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[] + // icon:dot-circle[] + provides = 'app' + + // The package maintainer’s name and email address. + // https://www.debian.org/doc/debian-policy/ch-controlfields.html//s-f-maintainer[] + // icon:exclamation-triangle[] + maintainer = 'Duke ' + + // 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[] + // icon:dot-circle[] + section = 'devel' + + // 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[] + // icon:dot-circle[] + priority = 'optional' + + // Is it an essential (non-removable) package or not. + // Defaults to `false`. + // link:https://www.debian.org/doc/debian-policy/ch-controlfields.html//essential[] + // icon:dot-circle[] + essential = true + + // The package's description. + // Defaults to `//{project.longDescription}`. + // link:https://www.debian.org/doc/debian-policy/ch-controlfields.html//description[] + // icon:dot-circle[] + description = 'Sample application' + + // 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[] + // icon:dot-circle[] + homepage = 'pass:[https://github.com/duke/app]' + + // Additional source packages used to build the binary. + // link:https://www.debian.org/doc/debian-policy/ch-relationships.html//s-built-using[] + // icon:dot-circle[] + 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 + // icon:dot-circle[] + depends = ['foo'] + preDepends = ['bar'] + recommends = ['foobar'] + suggests = ['foobar'] + enhances = ['foofy'] + breaks = ['foofoo'] + conflicts = ['barbar'] + } + +include::partial$assemble/gradle/common-assembler.adoc[] + +include::partial$assemble/gradle/common-footer.adoc[] +---- +-- +==== + +include::partial$envvars-header.adoc[] + +[%header, cols="<1,<1", width="100%"] +|=== +| System Property | Environment Variable +include::partial$named-envvars/active.adoc[] +|=== + +include::partial$envvars-footer.adoc[] + +== Templates + +The default location for templates is: + +`src/jreleaser/assemblers//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 xref:name-templates.adoc[] 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 + +include::partial$assemble/additional-files.adoc[] + +== Example + +Given the following file structure + +[source] +---- +. +├── BUILD +├── LICENSE +├── README +└── target + └── release + └── app +---- + +And this assembly configuration + +[tabs] +==== +YAML:: ++ +-- +[source,yaml] +[subs="+macros"] +---- +project: + version: 1.0.0 + name: app + description: Sample application + authors: + - Duke + inceptionYear: 2020 + +assemble: + deb: + app: + active: ALWAYS + architecture: amd64 + control: + maintainer: Duke + fileSets: + - input: '.' + includes: + - 'LICENSE' + - 'README' + - input: 'target/release' + output: 'bin' + includes: [ 'app' ] +---- +-- +TOML:: ++ +-- +[source,toml] +[subs="+macros"] +---- +[project] + version = "1.0.0" + name = "app" + description = "Sample application" + authors = [ "Duke" ] + inceptionYear = "2020" + +[assemble.archive.app] + active = "ALWAYS" + architecture = "amd64" + control.maintainer = "Duke " + pass:[[[assemble.archive.app.fileSets]]] + input = "." + includes = ["LICENSE", "README"] + pass:[[[assemble.archive.app.fileSets]]] + input = "target/release" + output = "bin" + includes = [ "app" ] +---- +-- +JSON:: ++ +-- +[source,json] +[subs="+macros"] +---- +{ + "project": { + "version": "1.0.0", + "name": "app", + "description": "Sample application", + "authors": [ "Duke" ], + "inceptionYear": "2020" + }, + "assemble": { + "archive": { + "app": { + "active": "ALWAYS", + "architexture": "amd64", + "control": { + "maintainer": "Duke " + }, + "fileSets": [ + { + "input": ".", + "includes": ["LICENSE", "README"] + }, + { + "input": "target/release", + "output": "bin", + "includes": [ "app" ] + } + ] + } + } + } +} +---- +-- +Maven:: ++ +-- +[source,xml] +[subs="+macros,verbatim"] +---- + + + 1.0.0 + app + Sample application + Duke + 2020 + + + + + ALWAYS + amd64 + + Duke <duke@acme.com> + + + + . + + LICENSE + README + + + + target/release + bin + + app + + + + + + + +---- +-- +Gradle:: ++ +-- +[source,groovy] +[subs="+macros"] +---- +jreleaser { + project { + version = '1.0.0' + name = 'app' + description = 'Sample application' + author('Duke') + inceptionYear: '2020' + } + assemble { + archive { + app { + active = 'ALWAYS' + architecture = 'amd64' + control { + maintainer = 'Duke ' + } + fileSet { + input = '.' + includes = ['LICENSE', 'README'] + } + fileSet { + input = 'target/release' + output = 'bin' + includes = [ 'app' ] + } + } + } + } +} +---- +-- +==== + +Resulting in the following `.deb` package + +[source] +.app-1.0.0-1_amd64.deb +---- +$ tar tvf app-1.0.0-1_amd64.deb +-rw-r--r-- 0 0 0 4 Dec 15 12:31 debian-binary +-rw-r--r-- 0 0 0 496 Dec 15 12:31 control.tar.zst +-rw-r--r-- 0 0 0 1120139 Dec 15 12:31 data.tar.zst +---- diff --git a/docs/modules/reference/pages/assemble/index.adoc b/docs/modules/reference/pages/assemble/index.adoc index af1ce7d9e..c205cdff6 100644 --- a/docs/modules/reference/pages/assemble/index.adoc +++ b/docs/modules/reference/pages/assemble/index.adoc @@ -124,6 +124,7 @@ with a `true` value inside xref:reference:environment.adoc[] properties or as a * `skipAssembleResolvers` * `skipArchiveResolver` +* `skipDebResolver` * `skipJavaArchiveResolver` * `skipJlinkResolver` * `skipJpackageResolver` diff --git a/docs/modules/reference/pages/assemble/java-archive.adoc b/docs/modules/reference/pages/assemble/java-archive.adoc index 0dc865dc7..bce9ec748 100644 --- a/docs/modules/reference/pages/assemble/java-archive.adoc +++ b/docs/modules/reference/pages/assemble/java-archive.adoc @@ -332,6 +332,7 @@ YAML:: ---- project: version: 1.0.0 + name: app description: Sample application authors: - Duke @@ -360,6 +361,7 @@ TOML:: ---- [project] version = "1.0.0" + name = "app" description = "Sample application" authors = [ "Duke" ] inceptionYear = "2020" @@ -384,6 +386,7 @@ JSON:: { "project": { "version": "1.0.0", + "name": "app", "description": "Sample application", "authors": [ "Duke" ], "inceptionYear": "2020" @@ -421,6 +424,7 @@ Maven:: 1.0.0 + app Sample application Duke 2020 @@ -459,6 +463,7 @@ Gradle:: jreleaser { project { version = '1.0.0' + name = 'app' description = 'Sample application' author('Duke') inceptionYear: '2020' diff --git a/docs/modules/reference/pages/matrix.adoc b/docs/modules/reference/pages/matrix.adoc index dd016ef29..1aeab42a6 100644 --- a/docs/modules/reference/pages/matrix.adoc +++ b/docs/modules/reference/pages/matrix.adoc @@ -147,7 +147,7 @@ jreleaser { // Configures matrix variables. // icon:dot-circle[] matrix { - variable(os, [ 'linux', 'osx', 'windows' ]) + variable('os', [ 'linux', 'osx', 'windows' ]) variable('arch', [ 'arm64', 'amd64' ]) row(os: 'linux', arch: 'arm64')