diff --git a/docs/modules/ROOT/nav-distributions.adoc b/docs/modules/ROOT/nav-distributions.adoc index 1137e07..bc7dca2 100644 --- a/docs/modules/ROOT/nav-distributions.adoc +++ b/docs/modules/ROOT/nav-distributions.adoc @@ -1,3 +1,4 @@ * xref:distributions/index.adoc[] ** xref:distributions/java-binary.adoc[] +** xref:distributions/single-jar.adoc[] ** xref:distributions/jlink.adoc[] diff --git a/docs/modules/ROOT/pages/distributions/java-binary.adoc b/docs/modules/ROOT/pages/distributions/java-binary.adoc index 20f4256..46d415e 100644 --- a/docs/modules/ROOT/pages/distributions/java-binary.adoc +++ b/docs/modules/ROOT/pages/distributions/java-binary.adoc @@ -35,7 +35,7 @@ We recommend using the following plugins to create suitable Java binary distribu .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. == Packager Support @@ -44,6 +44,7 @@ We recommend using the following plugins to create suitable Java binary distribu |=== | Packager | Supported | 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/jbang.adoc[] | {icon_req_y} | xref:configuration:packagers/scoop.adoc[] | {icon_req_y} diff --git a/docs/modules/ROOT/pages/distributions/jlink.adoc b/docs/modules/ROOT/pages/distributions/jlink.adoc index a821f03..19152ce 100644 --- a/docs/modules/ROOT/pages/distributions/jlink.adoc +++ b/docs/modules/ROOT/pages/distributions/jlink.adoc @@ -39,9 +39,9 @@ We recommend using the following plugins to create suitable Java binary distribu .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. -* 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. == Packager Support @@ -50,6 +50,7 @@ applications. Generates distribution files that follow the expected structure. A |=== | Packager | Supported | 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/jbang.adoc[] | {icon_req_n} | xref:configuration:packagers/scoop.adoc[] | {icon_req_y} diff --git a/docs/modules/ROOT/pages/distributions/single-jar.adoc b/docs/modules/ROOT/pages/distributions/single-jar.adoc new file mode 100644 index 0000000..4361b94 --- /dev/null +++ b/docs/modules/ROOT/pages/distributions/single-jar.adoc @@ -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} +|=== + + + diff --git a/docs/modules/configuration/pages/packagers/chocolatey.adoc b/docs/modules/configuration/pages/packagers/chocolatey.adoc index 473744d..7b6d323 100644 --- a/docs/modules/configuration/pages/packagers/chocolatey.adoc +++ b/docs/modules/configuration/pages/packagers/chocolatey.adoc @@ -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 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[] diff --git a/docs/modules/configuration/pages/packagers/docker.adoc b/docs/modules/configuration/pages/packagers/docker.adoc index b4bed42..cd7312f 100644 --- a/docs/modules/configuration/pages/packagers/docker.adoc +++ b/docs/modules/configuration/pages/packagers/docker.adoc @@ -2,9 +2,9 @@ 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. JReleaser will not install these tools. diff --git a/docs/modules/configuration/pages/packagers/homebrew.adoc b/docs/modules/configuration/pages/packagers/homebrew.adoc index cca54e2..28699b2 100644 --- a/docs/modules/configuration/pages/packagers/homebrew.adoc +++ b/docs/modules/configuration/pages/packagers/homebrew.adoc @@ -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/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[] diff --git a/docs/modules/configuration/pages/packagers/scoop.adoc b/docs/modules/configuration/pages/packagers/scoop.adoc index aebf78b..df96917 100644 --- a/docs/modules/configuration/pages/packagers/scoop.adoc +++ b/docs/modules/configuration/pages/packagers/scoop.adoc @@ -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. -WARNING: Snapshots are not supported. +WARNING: Snapshots are *not* supported. include::partial$legend.adoc[] diff --git a/docs/modules/configuration/pages/packagers/snap.adoc b/docs/modules/configuration/pages/packagers/snap.adoc index 71c3127..24dd10e 100644 --- a/docs/modules/configuration/pages/packagers/snap.adoc +++ b/docs/modules/configuration/pages/packagers/snap.adoc @@ -6,9 +6,9 @@ with automatic and transactional updates. 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 dependencies. diff --git a/local-playbook.yml b/local-playbook.yml index 1978330..a627ae3 100644 --- a/local-playbook.yml +++ b/local-playbook.yml @@ -6,7 +6,7 @@ site: content: sources: - url: ./ - branches: main + branches: development start_path: docs ui: