Document single-jar distribution

This commit is contained in:
Andres Almiray
2021-04-12 13:52:54 +02:00
parent 35daec14d9
commit a0957c09e2
10 changed files with 57 additions and 12 deletions

View File

@@ -1,3 +1,4 @@
* xref:distributions/index.adoc[] * xref:distributions/index.adoc[]
** xref:distributions/java-binary.adoc[] ** xref:distributions/java-binary.adoc[]
** xref:distributions/single-jar.adoc[]
** xref:distributions/jlink.adoc[] ** xref:distributions/jlink.adoc[]

View File

@@ -35,7 +35,7 @@ We recommend using the following plugins to create suitable Java binary distribu
.Gradle .Gradle
* link:https://docs.gradle.org/current/userguide/application_plugin.html[application] plugin: generates distribution * link:https://docs.gradle.org/current/userguide/application_plugin.html[application] plugin: generates distribution
files that follow the expected structure. Also, packages the distribution as a Zip or Tar. files that follow the expected structure. Also, packages the distribution as a Zip or Tar.
== Packager Support == Packager Support
@@ -44,6 +44,7 @@ We recommend using the following plugins to create suitable Java binary distribu
|=== |===
| Packager | Supported | Packager | Supported
| xref:configuration:packagers/chocolatey.adoc[] | {icon_req_y} | xref:configuration:packagers/chocolatey.adoc[] | {icon_req_y}
| xref:configuration:packagers/docker.adoc[] | {icon_req_y}
| xref:configuration:packagers/homebrew.adoc[] | {icon_req_y} | xref:configuration:packagers/homebrew.adoc[] | {icon_req_y}
| xref:configuration:packagers/jbang.adoc[] | {icon_req_y} | xref:configuration:packagers/jbang.adoc[] | {icon_req_y}
| xref:configuration:packagers/scoop.adoc[] | {icon_req_y} | xref:configuration:packagers/scoop.adoc[] | {icon_req_y}

View File

@@ -39,9 +39,9 @@ We recommend using the following plugins to create suitable Java binary distribu
.Gradle .Gradle
* link:https://badass-runtime-plugin.beryx.org/releases/latest/[badass-runtime-plugin] plugin: use it for *non-modular* * link:https://badass-runtime-plugin.beryx.org/releases/latest/[badass-runtime-plugin] plugin: use it for *non-modular*
applications. Generates distribution files that follow the expected structure. Also, packages the distribution as a Zip. applications. Generates distribution files that follow the expected structure. Also, packages the distribution as a Zip.
* link:https://badass-jlink-plugin.beryx.org/releases/latest/[badass-jlink-plugin] plugin: use it for *modular* * link:https://badass-jlink-plugin.beryx.org/releases/latest/[badass-jlink-plugin] plugin: use it for *modular*
applications. Generates distribution files that follow the expected structure. Also, packages the distribution as a Zip. applications. Generates distribution files that follow the expected structure. Also, packages the distribution as a Zip.
== Packager Support == Packager Support
@@ -50,6 +50,7 @@ applications. Generates distribution files that follow the expected structure. A
|=== |===
| Packager | Supported | Packager | Supported
| xref:configuration:packagers/chocolatey.adoc[] | {icon_req_y} | xref:configuration:packagers/chocolatey.adoc[] | {icon_req_y}
| xref:configuration:packagers/docker.adoc[] | {icon_req_y}
| xref:configuration:packagers/homebrew.adoc[] | {icon_req_y} | xref:configuration:packagers/homebrew.adoc[] | {icon_req_y}
| xref:configuration:packagers/jbang.adoc[] | {icon_req_n} | xref:configuration:packagers/jbang.adoc[] | {icon_req_n}
| xref:configuration:packagers/scoop.adoc[] | {icon_req_y} | xref:configuration:packagers/scoop.adoc[] | {icon_req_y}

View File

@@ -0,0 +1,42 @@
= Single JAR
Distributions of this type are comprised of a single, executable JAR, with all their dependencies available inside
the JAR. These JARs are also known as `fatjar` or `uber-jar`.
Single JAR distributions *require* a suitable Java runtime to be installed on the consumer side.
== Creating a Distribution
We recommend using the following plugins to create suitable Single JAR distributions:
.Maven
* link:https://maven.apache.org/plugins/maven-shade-plugin/[maven-shade-plugin]: packages a JAR and its dependencies as
an uber-jar.
* link:https://maven.apache.org/plugins/maven-jar-plugin/[maven-jar-plugin]: if the JAR has no additional dependencies.
Make sure to make the JAR executable by setting the `Main-Class` manifest entry.
.Gradle
* link:https://imperceptiblethoughts.com/shadow/introduction/[shadow]: packages a JAR and its dependencies as
an uber-jar.
* link:https://docs.gradle.org/current/userguide/java_plugin.html[java]: if the JAR has no additional dependencies.
Make sure to make the JAR executable by setting the `Main-Class` manifest entry.
== Packager Support
[%header, cols="<,^"]
|===
| Packager | Supported
| xref:configuration:packagers/chocolatey.adoc[] | {icon_req_n}
| xref:configuration:packagers/docker.adoc[] | {icon_req_y}
| xref:configuration:packagers/homebrew.adoc[] | {icon_req_y}
| xref:configuration:packagers/jbang.adoc[] | {icon_req_y}
| xref:configuration:packagers/scoop.adoc[] | {icon_req_n}
| xref:configuration:packagers/snap.adoc[] | {icon_req_y}
|===

View File

@@ -7,7 +7,7 @@ NOTE: At the moment, only artifacts with `.zip` extension may be packaged with C
WARNING: Local publication of packages is currently not supported. Please set `remoteBuild` to `true` and trigger a WARNING: Local publication of packages is currently not supported. Please set `remoteBuild` to `true` and trigger a
build on CI. Local publication will be added at a later release. build on CI. Local publication will be added at a later release.
WARNING: Snapshots are not supported. WARNING: Snapshots are *not* supported.
include::partial$legend.adoc[] include::partial$legend.adoc[]

View File

@@ -2,9 +2,9 @@
Creates link:https://www.docker.com/[Docker] images. Creates link:https://www.docker.com/[Docker] images.
NOTE: At the moment, only artifacts with `.zip` extension may be packaged with Docker. NOTE: Only artifacts with `.zip`, `.jar` extension may be packaged with Docker.
WARNING: Snapshots are not supported. WARNING: Snapshots are *not* supported.
IMPORTANT: Building and publishing docker images requires the `docker` command and a running Docker deamon. IMPORTANT: Building and publishing docker images requires the `docker` command and a running Docker deamon.
JReleaser will not install these tools. JReleaser will not install these tools.

View File

@@ -4,9 +4,9 @@ The `brew` section specifies how the formula should be created. You can check th
link:https://github.com/Homebrew/brew/blob/master/docs/How-to-Create-and-Maintain-a-Tap.md[Homebrew documentation] and the link:https://github.com/Homebrew/brew/blob/master/docs/How-to-Create-and-Maintain-a-Tap.md[Homebrew documentation] and the
link:https://github.com/Homebrew/brew/blob/master/docs/Formula-Cookbook.md[formula cookbook] for more details. link:https://github.com/Homebrew/brew/blob/master/docs/Formula-Cookbook.md[formula cookbook] for more details.
NOTE: At the moment, only artifacts with `.zip` extension may be packaged with Homebrew. NOTE: Only artifacts with `.zip`, `.jar` extension may be packaged with Homebrew.
WARNING: Snapshots are not supported. WARNING: Snapshots are *not* supported.
include::partial$legend.adoc[] include::partial$legend.adoc[]

View File

@@ -6,7 +6,7 @@ The `scoop` section specifies how the manifest should be created.
NOTE: At the moment, only artifacts with `.zip` extension may be packaged with Scoop. NOTE: At the moment, only artifacts with `.zip` extension may be packaged with Scoop.
WARNING: Snapshots are not supported. WARNING: Snapshots are *not* supported.
include::partial$legend.adoc[] include::partial$legend.adoc[]

View File

@@ -6,9 +6,9 @@ with automatic and transactional updates.
You can read more about it in the link:https://snapcraft.io/docs/[snapcraft docs]. You can read more about it in the link:https://snapcraft.io/docs/[snapcraft docs].
NOTE: At the moment, only artifacts with `.tar.gz` or `.tar` extension may be packaged with Snapcraft. NOTE: Only artifacts with `.tar.gz`, `.tar`, or `.jar` extension may be packaged with Snapcraft.
WARNING: Snapshots are not supported. WARNING: Snapshots are *not* supported.
IMPORTANT: Building local snaps requires `snapcraft` to be pre installed. JReleaser will not install it nor its IMPORTANT: Building local snaps requires `snapcraft` to be pre installed. JReleaser will not install it nor its
dependencies. dependencies.

View File

@@ -6,7 +6,7 @@ site:
content: content:
sources: sources:
- url: ./ - url: ./
branches: main branches: development
start_path: docs start_path: docs
ui: ui: