Document the JDKs maven and Gradle plugins

This commit is contained in:
Andres Almiray
2021-05-01 18:16:53 +02:00
parent 57c78a0bc6
commit 9bf2885e25
27 changed files with 683 additions and 99 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 292 KiB

View File

@@ -15,9 +15,9 @@ image::jreleaser-tools.png[]
== How does it work
A release process can be customized with a `jreleaser.[yml|toml|json]` file if using the xref:tools:cli.adoc[CLI] or
xref:tools:ant.adoc[Ant] options, or direct DSL configuration inside a `pom.xml` (xref:tools:maven.adoc[Maven]) or
`build.gradle` (xref:tools:gradle.adoc[Gradle]) file.
A release process can be customized with a `jreleaser.[yml|toml|json]` file if using the xref:tools:jreleaser-cli.adoc[CLI] or
xref:tools:jreleaser-ant.adoc[Ant] options, or direct DSL configuration inside a `pom.xml` (xref:tools:jreleaser-maven.adoc[Maven]) or
`build.gradle` (xref:tools:jreleaser-gradle.adoc[Gradle]) file.
Once setup, you can create a new release by invoking the `full-release` command.

View File

@@ -3,7 +3,7 @@
There are multiple choices depending on your preference.
== CLI
The xref:tools:cli.adoc[CLI] can be installed in the following ways:
The xref:tools:jreleaser-cli.adoc[CLI] can be installed in the following ways:
[tabs]
====
@@ -114,7 +114,7 @@ You may also need to map environment variables to the container, such as `JRELEA
`JRELEASER_GITHUB_TOKEN`, or others depending on your setup. Refer to the xref:configuration:index.adoc[] pages.
== Maven
Configure the xref:tools:maven.adoc[jreleaser-maven-plugin] in your POM file
Configure the xref:tools:jreleaser-maven.adoc[jreleaser-maven-plugin] in your POM file
[source,xml]
[subs="verbatim,attributes"]
@@ -128,7 +128,7 @@ Configure the xref:tools:maven.adoc[jreleaser-maven-plugin] in your POM file
----
== Gradle
Configure the xref:tools:gradle.adoc[jreleaser-gradle-plugin] in your `build.gradle` file
Configure the xref:tools:jreleaser-gradle.adoc[jreleaser-gradle-plugin] in your `build.gradle` file
[source,groovy]
[subs="attributes"]
@@ -140,7 +140,7 @@ plugins {
----
== Ant
Download the xref:tools:ant.adoc[jreleaser-ant-tasks] ZIP bundle from the
Download the xref:tools:jreleaser-ant.adoc[jreleaser-ant-tasks] ZIP bundle from the
link:https://github.com/jreleaser/jreleaser/releases[releases page] and unzip it in your project. Place all JARs inside
the `lib` folder. Create this folder if there is none. Add the following elements to your `build.xml` file

View File

@@ -6,7 +6,7 @@ TIP: Cross platform Java runtime images may be created however you must ensure t
same matching major version.
IMPORTANT: You have to install additional JDKs to enable cross-platform images. JReleaser will *not* install these JDKS
for you.
for you. You may configure the xref:tools:jdks-maven.adoc[] or the xref:tools:jdks-gradle.adoc[] to downloads JDKS.
include::partial$legend.adoc[]

View File

@@ -3,7 +3,8 @@
Creates a Native Image binary using link:https://www.graalvm.org/reference-manual/native-image/[GraalVM Native Image].
IMPORTANT: You need a local installation of GraalVM. JReleaser will *not* install GraalVM for you, however it can
install the `native-image` command if needed.
install the `native-image` command if needed. You may configure the xref:tools:jdks-maven.adoc[] or the
xref:tools:jdks-gradle.adoc[] to downloads a GraalVM distribution.
include::partial$legend.adoc[]

View File

@@ -4,5 +4,5 @@ This section describes elements that can be configured in `jrelease.yml` file. T
`jreleaser init --format yml` or start from scratch.
Other configuration formats besides YAML may be supported as well, such as TOML, JSON,
the xref:tools:maven.adoc[Maven] DSL, the xref:tools:gradle.adoc[Gradle] DSL.
the xref:tools:jreleaser-maven.adoc[Maven] DSL, the xref:tools:jreleaser-gradle.adoc[Gradle] DSL.

View File

@@ -3,7 +3,7 @@
You can setup a link:https://circleci.com[Circle CI] pipeline.
NOTE: If you're already building with either Maven or Gradle then you might use the
xref:tools:maven.adoc[] or the xref:tools:gradle.adoc[] instead.
xref:tools:jreleaser-maven.adoc[] or the xref:tools:jreleaser-gradle.adoc[] instead.
[source,yaml]
[subs="+macros"]

View File

@@ -3,7 +3,7 @@
Codefresh uses Docker based pipelines where all steps must be Docker containers.
NOTE: If you're already building with either Maven or Gradle then you might use the
xref:tools:maven.adoc[] or the xref:tools:gradle.adoc[] instead.
xref:tools:jreleaser-maven.adoc[] or the xref:tools:jreleaser-gradle.adoc[] instead.
[source,yaml]
[subs="+macros"]

View File

@@ -8,7 +8,7 @@ image::ROOT:jreleaser-github-action.png[]
You can create a workflow for pushing your releases by putting YAML configuration to `.github/workflows/release.yml`.
NOTE: If you're already building with either Maven or Gradle then you might use the
xref:tools:maven.adoc[] or the xref:tools:gradle.adoc[] instead.
xref:tools:jreleaser-maven.adoc[] or the xref:tools:jreleaser-gradle.adoc[] instead.
:project-owner: jreleaser
:project-name: release-action
@@ -103,7 +103,7 @@ Should match any of the link:https://github.com/jreleaser/jreleaser/releases[pub
Defaults to the directory the calling workflow runs in.
|===
Arguments may be any of those supported by the xref:tools:cli.adoc[CLI] tool.
Arguments may be any of those supported by the xref:tools:jreleaser-cli.adoc[CLI] tool.
== Environment Variables

View File

@@ -3,7 +3,7 @@
You can setup a link:https://docs.gitlab.com/ee/ci/README.html[GitLab CI] job as well.
NOTE: If you're already building with either Maven or Gradle then you might use the
xref:tools:maven.adoc[] or the xref:tools:gradle.adoc[] instead.
xref:tools:jreleaser-maven.adoc[] or the xref:tools:jreleaser-gradle.adoc[] instead.
[source,yaml]
[subs="+macros"]

View File

@@ -3,7 +3,7 @@
You can setup a link:https://www.jenkins.io[Jenkins] pipeline for Linux and Windows agents:
NOTE: If you're already building with either Maven or Gradle then you might use the
xref:tools:maven.adoc[] or the xref:tools:gradle.adoc[] instead.
xref:tools:jreleaser-maven.adoc[] or the xref:tools:jreleaser-gradle.adoc[] instead.
[tabs]
====

View File

@@ -79,4 +79,4 @@ If the signing flags are omitted then only the following environment variable mu
* `JRELEASER_GITHUB_TOKEN`
Find more information about the options available for this type of releases
xref:tools:cli.adoc#_release[here].
xref:tools:jreleaser-cli.adoc#_release[here].

View File

@@ -13,7 +13,16 @@ is used to create both release and snapshot releases:
project:
name: jreleaser
description: Release Java projects quickly and easily with JReleaser
longDescription: Release Java projects quickly and easily with JReleaser
longDescription: |
JReleaser is a release automation tool for Java projects. Its goal is to simplify creating releases
and publishing artifacts to multiple package managers while providing customizable options.
JReleaser takes inputs from popular builds tools (Ant, Maven, Gradle) such as JAR files, binary
distributions (.zip, .tar), JLink images, or any other file that youd like to publish as a Git
release on popular Git services such as Github or Gitlab. Distribution files can additionally be
published to be consumed by popular package managers as Homebrew, Snapcraft, or get ready to be
launched via Jbang. Releases may be announced in a variety of channels such as Twitter, Zulip, or SDKMAN!
website: https://jreleaser.org
authors:
- Andres Almiray
@@ -24,12 +33,40 @@ project:
# The repository is hosted at https://github.com/jreleaser/jreleaser
# which means the default username would be `jreleaser` however a
# different username is required
# different username is required in this case
release:
github:
username: aalmiray
overwrite: true
sign: true
changelog:
formatted: ALWAYS
change: '- {{commitShortHash}} {{commitTitle}}'
# Label commits by matching their first line
labelers:
- label: 'feature'
title: 'Resolves #'
- label: 'issue'
title: 'Fixes #'
- label: 'issue'
title: 'Relates to #'
- label: 'task'
title: '[chore]'
# Categorize commits byt labels
categories:
- title: '🚀 Features'
labels:
- 'feature'
- title: '✅ Issues'
labels:
- 'issue'
- title: '🧰 Tasks'
labels:
- 'task'
# Remove `[chore] ` from the commit message
replacers:
- search: '\[chore\] '
replace: ''
# File signing is always active
signing:
@@ -43,6 +80,39 @@ announce:
sdkman:
active: release
# Configure a cross-platform Jlink assembly & distribution
assemble:
jlinks:
jreleaser-standalone:
active: always
extraProperties:
sdkmanSkip: true
java:
version: 11
mainClass: org.jreleaser.cli.Main
imageName: 'jreleaser-standalone-{{projectEffectiveVersion}}'
executable: 'jreleaser'
moduleNames:
- java.base
- java.desktop
- java.management
- java.naming
- java.rmi
- java.security.jgss
- java.sql
targetJdks:
- path: 'apps/jreleaser/build/jdks/zulu11.48.21-ca-jdk11.0.11-macosx_x64/zulu-11.jdk/Contents/Home'
platform: osx
- path: 'apps/jreleaser/build/jdks/zulu11.48.21-ca-jdk11.0.11-linux_x64'
platform: linux
- path: 'apps/jreleaser/build/jdks/zulu11.48.21-ca-jdk11.0.11-win_x64'
platform: windows
mainJar:
path: 'apps/jreleaser/build/libs/jreleaser-{{projectVersion}}.jar'
jars:
- directory: 'apps/jreleaser/build/dependencies/flat'
include: '*.jar'
# Configure 3 distributions
distributions:
# Distribution 1 is of type JAVA_BINARY
@@ -55,6 +125,14 @@ distributions:
scoop:
# Active only on release
active: release
snap:
# Active only on release
active: release
remoteBuild: true
base: core18
localPlugs:
- network
- home
jbang:
# Always active
active: always
@@ -66,7 +144,7 @@ distributions:
# Distribution 2 is of type JAVA_BINARY
jreleaser-ant-tasks:
extraProperties:
# Do not considerits artifacts for publication via SdkMan
# Do not consider its artifacts for publication via SdkMan
sdkmanSkip: true
artifacts:
# Transform the artifact name
@@ -102,7 +180,6 @@ files:
- path: VERSION
----
Which will create and tag a prerelease on GitHub when the project is snapshot
image::ROOT:jreleaser-early-access.png[]
Which will create and tag a prerelease on GitHub when the project is snapshot, and a regular release when
the project is not snapshot.

View File

@@ -3,7 +3,7 @@
Your project should be able to produce binary distributions, a feat typically achieved by configuring
the `link:https://docs.gradle.org/current/userguide/application_plugin.html[application]` plugin.
You also have to configure the xref:tools:gradle.adoc[jreleaser-gradle-plugin]. We recommend using the
You also have to configure the xref:tools:jreleaser-gradle.adoc[jreleaser-gradle-plugin]. We recommend using the
link:https://kordamp.org/kordamp-gradle-plugins/[Kordamp plugins] as they provide additional benefits,
however their use is optional. A sample project using Kordamp may look like this:

View File

@@ -8,7 +8,7 @@ following Maven plugins:
dependencies and generates launcher scripts.
* link:http://maven.apache.org/plugins/maven-assembly-plugin/[maven-assembly-plugin]: creates Zip and Tar distributions.
You also have to configure the xref:tools:maven.adoc[jreleaser-maven-plugin]. A sample project may look like this:
You also have to configure the xref:tools:jreleaser-maven.adoc[jreleaser-maven-plugin]. A sample project may look like this:
[source,xml]
[subs="attributes,verbatim"]

View File

@@ -17,8 +17,8 @@ for a particular packager. You may override this behavior by providing your own
expected by each packager, or by pointing the packager to a different template source.
Template files may be generated using the appropriate command exposed by your tool of choice:
xref:tools:cli.adoc#_template[CLI], xref:tools:maven.adoc#_jreleasertemplate[Maven],
xref:tools:gradle.adoc#_jreleasertemplate[Gradle], xref:tools:ant.adoc#_jreleaser_template[Ant].
xref:tools:jreleaser-cli.adoc#_template[CLI], xref:tools:jreleaser-maven.adoc#_jreleasertemplate[Maven],
xref:tools:jreleaser-gradle.adoc#_jreleasertemplate[Gradle], xref:tools:jreleaser-ant.adoc#_jreleaser_template[Ant].
Some configuration elements let you define custom properties that may be used as placeholders, for example

View File

@@ -1,7 +1,9 @@
* xref:index.adoc[]
** xref:cli.adoc[]
** xref:maven.adoc[]
** xref:gradle.adoc[]
** xref:ant.adoc[]
** xref:tool-provider.adoc[]
** xref:docker.adoc[]
** xref:jreleaser-cli.adoc[]
** xref:jreleaser-maven.adoc[]
** xref:jreleaser-gradle.adoc[]
** xref:jreleaser-ant.adoc[]
** xref:jreleaser-tool-provider.adoc[]
** xref:jreleaser-docker.adoc[]
** xref:jdks-maven.adoc[]
** xref:jdks-gradle.adoc[]

View File

@@ -3,9 +3,19 @@
JReleaser may be invoked in several ways depending on your setup.
The following options are currently available:
* xref:cli.adoc[]
* xref:maven.adoc[]
* xref:gradle.adoc[]
* xref:ant.adoc[]
* xref:tool-provider.adoc[]
* xref:docker.adoc[]
* xref:jreleaser-cli.adoc[]
* xref:jreleaser-maven.adoc[]
* xref:jreleaser-gradle.adoc[]
* xref:jreleaser-ant.adoc[]
* xref:jreleaser-tool-provider.adoc[]
* xref:jreleaser-docker.adoc[]
Some features require additional JDKs to be readily available, such as assembling cross-platform
xref:ROOT:distributions/jlink.adoc[] Java Runtimes or assembling xref:ROOT:distributions/native-image.adoc[]
binaries with GraalVM.
The following options may be used to download, verify, and unpack JDK/GraalVM distributions
* xref:jdks-maven.adoc[]
* xref:jdks-gradle.adoc[]

View File

@@ -0,0 +1,209 @@
= JDKs Gradle Plugin
Downloads JDK distributions.
== Install
[source,groovy]
[subs="attributes"]
.build.gradle
----
plugins {
id 'org.jreleaser.jdks' version '{jreleaser-version}'
}
----
== Configuration DSL
JDKS must define the following properties:
* `name`: a user defined name, must be unique.
* `url`: the URL from where the JDK can be downloaded.
* `checksum`: the checksum value used to verify the archive's integrity.
* `platform`: the platform this JDK is related to.
The `checksum` property accepts thew following formats:
* `<algorithm>/<checksum>`
* `<checksum>`
The value of `<algorithm>` must match those specified at
link:https://docs.oracle.com/en/java/javase/11/docs/specs/security/standard-names.html#messagedigest-algorithms[MessageDigest section]
in the Java Security Standard Algorithm Names Specification. If no value for `<algorithm>` is given then `SHA-256` is assumed.
include::configuration:partial$platform.adoc[]
Here's an example configuration
[source,groovy]
[subs="attributes"]
----
jdks {
zulu11Linux {
platform = 'linux'
url = 'https://cdn.azul.com/zulu/bin/zulu11.48.21-ca-jdk11.0.11-linux_x64.zip'
checksum = '9d1718ef74c29a8148b67ddd90bc9267fc1614e0a1eb0f4ea16e234e86419a60'
}
zulu11Windows {
platform = 'windows'
url = 'https://cdn.azul.com/zulu/bin/zulu11.48.21-ca-jdk11.0.11-win_x64.zip'
checksum = '7bcbaedecca73811f70a5ee89e9258afff9bc009286449d97d9b3105f52a1a3a'
}
zulu11Osx {
platform = 'osx'
url = 'https://cdn.azul.com/zulu/bin/zulu11.48.21-ca-jdk11.0.11-macosx_x64.zip'
checksum = 'abc3a9696fb6c10efcf3c5878cdb049244b0ba5dcc7141c6f0f88b99df626d2a'
}
graal21_1_0_linux {
platform = 'linux'
url = 'https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-21.1.0/graalvm-ce-java11-linux-amd64-21.1.0.tar.gz'
checksum = '39252954d2cb16dbc8ce4269f8b93a326a0efffdce04625615e827fe5b5e4ab7'
}
}
----
== Tasks
The following tasks are provided per JDK
=== downloadJdk<name>
Downloads a JDK with a matching name.
=== verifyJdk<name>
Verifies the integrity of the JDK archive with a matching name.
=== downloadJdk<name>
Unpacks the JDK archive with a matching name.
The following tasks are provided for all JDKS
=== downloadJdks
Downloads all configured JDKS.
=== verifyJdks
Verifies all configured JDKS.
=== unpackJdks
Unpacks all configured JDKS.
=== setupJdks
Downloads, verifies, and unpacks all configured JDKS.
=== listJdks
Lists all configured JDKS.
=== copyJdksToCache
Copies all JDK archives to the Gradle cache directory.
=== copyJdksFromCache
Copies all JDK archives from the Gradle cache directory to the build directory.
== Examples
Listing all JDKS
[source]
----
$ gm listJdks
> Task :listJdks
== JDK graal21_1_0_linux ==
url: https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-21.1.0/graalvm-ce-java11-linux-amd64-21.1.0.tar.gz
checksum: 39252954d2cb16dbc8ce4269f8b93a326a0efffdce04625615e827fe5b5e4ab7
platform: linux
== JDK zulu11Linux ==
url: https://cdn.azul.com/zulu/bin/zulu11.48.21-ca-jdk11.0.11-linux_x64.zip
checksum: 9d1718ef74c29a8148b67ddd90bc9267fc1614e0a1eb0f4ea16e234e86419a60
platform: linux
== JDK zulu11Osx ==
url: https://cdn.azul.com/zulu/bin/zulu11.48.21-ca-jdk11.0.11-macosx_x64.zip
checksum: abc3a9696fb6c10efcf3c5878cdb049244b0ba5dcc7141c6f0f88b99df626d2a
platform: osx
== JDK zulu11Windows ==
url: https://cdn.azul.com/zulu/bin/zulu11.48.21-ca-jdk11.0.11-win_x64.zip
checksum: 7bcbaedecca73811f70a5ee89e9258afff9bc009286449d97d9b3105f52a1a3a
platform: windows
----
Setup all JDKS
[source]
----
$ gm setuJdks
> Task :downloadJdkGraal21_1_0_linux
Download https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-21.1.0/graalvm-ce-java11-linux-amd64-21.1.0.tar.gz
> Task :downloadJdkZulu11Linux
Download https://cdn.azul.com/zulu/bin/zulu11.48.21-ca-jdk11.0.11-linux_x64.zip
> Task :downloadJdkZulu11Osx
Download https://cdn.azul.com/zulu/bin/zulu11.48.21-ca-jdk11.0.11-macosx_x64.zip
> Task :downloadJdkZulu11Windows
Download https://cdn.azul.com/zulu/bin/zulu11.48.21-ca-jdk11.0.11-win_x64.zip
> Task :downloadJdks
> Task :verifyJdkGraal21_1_0_linux
> Task :unpackJdkGraal21_1_0_linux
> Task :verifyJdkZulu11Linux
> Task :unpackJdkZulu11Linux
> Task :verifyJdkZulu11Osx
> Task :unpackJdkZulu11Osx
> Task :verifyJdkZulu11Windows
> Task :unpackJdkZulu11Windows
> Task :unpackJdks
> Task :verifyJdks
> Task :setupJdks
> Task :copyJdksToCache
----
All tasks are added to the `JDKS` group
[source]
----
$ gm tasks --group=JDKS
> Task :tasks
------------------------------------------------------------
Tasks runnable from root project 'app'
------------------------------------------------------------
Jdks tasks
----------
copyJdksFromCache - Copy JDKs from Gradle cache
copyJdksToCache - Copy JDKs to Gradle cache
downloadJdkGraal21_1_0_linux - Download JDK graal21_1_0_linux
downloadJdks - Download all JDKs
downloadJdkZulu11Linux - Download JDK zulu11Linux
downloadJdkZulu11Osx - Download JDK zulu11Osx
downloadJdkZulu11Windows - Download JDK zulu11Windows
listJdks - Lists all JDKs
setupJdks - Setups all JDKs
unpackJdkGraal21_1_0_linux - Unpack JDK graal21_1_0_linux
unpackJdks - Unpack all JDKs
unpackJdkZulu11Linux - Unpack JDK zulu11Linux
unpackJdkZulu11Osx - Unpack JDK zulu11Osx
unpackJdkZulu11Windows - Unpack JDK zulu11Windows
verifyJdkGraal21_1_0_linux - Verify JDK graal21_1_0_linux
verifyJdks - Verify all JDKs
verifyJdkZulu11Linux - Verify JDK zulu11Linux
verifyJdkZulu11Osx - Verify JDK zulu11Osx
verifyJdkZulu11Windows - Verify JDK zulu11Windows
----

View File

@@ -0,0 +1,165 @@
= JDKs Maven Plugin
Downloads JDK distributions.
== Install
[source,xml]
[subs="verbatim,attributes"]
.pom.xml
----
<plugin>
<groupId>org.jreleaser</groupId>
<artifactId>jdks-maven-plugin</artifactId>
<version>{jreleaser-version}</version>
</plugin>
----
== Configuration DSL
JDKS must define the following properties:
* `name`: a user defined name, must be unique.
* `url`: the URL from where the JDK can be downloaded.
* `checksum`: the checksum value used to verify the archive's integrity.
* `platform`: the platform this JDK is related to.
The `checksum` property accepts thew following formats:
* `<algorithm>/<checksum>`
* `<checksum>`
The value of `<algorithm>` must match those specified at
link:https://docs.oracle.com/en/java/javase/11/docs/specs/security/standard-names.html#messagedigest-algorithms[MessageDigest section]
in the Java Security Standard Algorithm Names Specification. If no value for `<algorithm>` is given then `SHA-256` is assumed.
include::configuration:partial$platform.adoc[]
Here's an example configuration
[source,xml]
[subs="verbatim,attributes"]
----
<plugin>
<groupId>org.jreleaser</groupId>
<artifactId>jdks-maven-plugin</artifactId>
<version>{jreleaser-version}</version>
<configuration>
<jdks>
<jdk>
<name>zulu11Linux</name>
<platform>linux</platform>
<url>https://cdn.azul.com/zulu/bin/zulu11.48.21-ca-jdk11.0.11-linux_x64.zip</url>
<checksum>9d1718ef74c29a8148b67ddd90bc9267fc1614e0a1eb0f4ea16e234e86419a60</checksum>
</jdk>
<jdk>
<name>zulu11Windows</name>
<platform>windows</platform>
<url>https://cdn.azul.com/zulu/bin/zulu11.48.21-ca-jdk11.0.11-win_x64.zip</url>
<checksum>7bcbaedecca73811f70a5ee89e9258afff9bc009286449d97d9b3105f52a1a3a</checksum>
</jdk>
<jdk>
<name>zulu11Osx</name>
<platform>osx</platform>
<url>https://cdn.azul.com/zulu/bin/zulu11.48.21-ca-jdk11.0.11-macosx_x64.zip</url>
<checksum>abc3a9696fb6c10efcf3c5878cdb049244b0ba5dcc7141c6f0f88b99df626d2a</checksum>
</jdk>
<jdk>
<name>graal21.1.0-linux</name>
<platform>linux</platform>
<url>https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-21.1.0/graalvm-ce-java11-linux-amd64-21.1.0.tar.gz</url>
<checksum>39252954d2cb16dbc8ce4269f8b93a326a0efffdce04625615e827fe5b5e4ab7</checksum>
</jdk>
</jdks>
</configuration>
</plugin>
----
== Goals
None of the exposed MOJOs are bound to a specific life-cycle phase, letting you decide when and how that
should happen in your build.
The following MOJOs are provided:
=== jreleaser:list-jdks
Lists all configured JDKS.
=== jreleaser:setup-jdks
Downloads, verifies, and unpacks JDKs.
*jdkName*
[horizontal]
Type:: String
Default value:: <none>
Property:: jdk.name
Required:: false
Description:: The name of the JDK to be downloaded.
---
*outputDirectory*
[horizontal]
Type:: String
Default value:: ${project.build.directory}/jdks
Property:: jdks.output.directory
Required:: false
Description:: Directory where JDKs should be unpacked.
---
*skip*
[horizontal]
Type:: boolean
Default value:: false
Property:: jdks.setup.skip
Required:: false
Description:: Skips execution of this MOJO.
== Examples
[source]
[subs="attributes"]
----
[INFO] --- jdks-maven-plugin:{jreleaser-version}:list-jdks (default-cli) @ app ---
[INFO] == JDK zulu11Linux ==
[INFO] url: https://cdn.azul.com/zulu/bin/zulu11.48.21-ca-jdk11.0.11-linux_x64.zip
[INFO] checksum: 9d1718ef74c29a8148b67ddd90bc9267fc1614e0a1eb0f4ea16e234e86419a60
[INFO] platform: linux
[INFO]
[INFO] == JDK zulu11Windows ==
[INFO] url: https://cdn.azul.com/zulu/bin/zulu11.48.21-ca-jdk11.0.11-win_x64.zip
[INFO] checksum: 7bcbaedecca73811f70a5ee89e9258afff9bc009286449d97d9b3105f52a1a3a
[INFO] platform: windows
[INFO]
[INFO] == JDK zulu11Osx ==
[INFO] url: https://cdn.azul.com/zulu/bin/zulu11.48.21-ca-jdk11.0.11-macosx_x64.zip
[INFO] checksum: abc3a9696fb6c10efcf3c5878cdb049244b0ba5dcc7141c6f0f88b99df626d2a
[INFO] platform: osx
[INFO]
[INFO] == JDK graal21.1.0-linux ==
[INFO] url: https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-21.1.0/graalvm-ce-java11-linux-amd64-21.1.0.tar.gz
[INFO] checksum: 39252954d2cb16dbc8ce4269f8b93a326a0efffdce04625615e827fe5b5e4ab7
[INFO] platform: linux
----
[source]
[subs="attributes"]
----
[INFO] --- jdks-maven-plugin:{jreleaser-version}:setup-jdks (default-cli) @ app ---
[INFO] Downloading https://cdn.azul.com/zulu/bin/zulu11.48.21-ca-jdk11.0.11-linux_x64.zip
[INFO] Verifying zulu11.48.21-ca-jdk11.0.11-linux_x64.zip
[INFO] Extracting zulu11.48.21-ca-jdk11.0.11-linux_x64.zip
[INFO] Downloading https://cdn.azul.com/zulu/bin/zulu11.48.21-ca-jdk11.0.11-win_x64.zip
[INFO] Verifying zulu11.48.21-ca-jdk11.0.11-win_x64.zip
[INFO] Extracting zulu11.48.21-ca-jdk11.0.11-win_x64.zip
[INFO] Downloading https://cdn.azul.com/zulu/bin/zulu11.48.21-ca-jdk11.0.11-macosx_x64.zip
[INFO] Verifying zulu11.48.21-ca-jdk11.0.11-macosx_x64.zip
[INFO] Extracting zulu11.48.21-ca-jdk11.0.11-macosx_x64.zip
[INFO] Downloading https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-21.1.0/graalvm-ce-java11-linux-amd64-21.1.0.tar.gz
[INFO] Verifying graalvm-ce-java11-linux-amd64-21.1.0.tar.gz
[INFO] Extracting graalvm-ce-java11-linux-amd64-21.1.0.tar.gz
[INFO] Expanding: /Users/aalmiray/tmp/app/target/jdks/graalvm-ce-java11-linux-amd64-21.1.0.tar.gz into /Users/duke/app/target/jdks
----

View File

@@ -1,10 +1,38 @@
= JReleaser Ant Tasks
Executes a JReleaser workflow as Ant tasks
Executes a JReleaser workflow as Ant tasks.
== Install
Download jreleaser-ant-tasks ZIP bundle from the
link:https://github.com/jreleaser/jreleaser/releases[releases page] and unzip it in your project. Place all JARs inside
the `lib` folder. Create this folder if there is none. Add the following elements to your `build.xml` file
[source,xml]
[subs="verbatim,attributes"]
.build.xml
----
<path id="jreleaser.classpath">
<fileset dir="lib">
<include name="jreleaser-ant-tasks-{jreleaser-version}/*.jar"/>
</fileset>
</path>
<import>
<javaresource name="org/jreleaser/ant/targets.xml"
classpathref="jreleaser.classpath"/>
</import>
----
== Configuration
JReleaser must be configured using the YAML, TOML, or JSON DSLs shown at xref:configuration:index.adoc[].
== Tasks
The following tasks are provided:
== jreleaser-init
=== jreleaser-init
Create a jreleaser config file.
@@ -24,7 +52,7 @@ Property:: jreleaser.overwrite
Required:: false
Description:: Overwrites existing template files.
== jreleaser-config
=== jreleaser-config
Display current configuration.
@@ -65,7 +93,7 @@ Property:: jreleaser.skip
Required:: false
Description:: Skips execution of this task.
== jreleaser-template
=== jreleaser-template
Generate a tool/announcer template.
@@ -137,7 +165,7 @@ Property:: jreleaser.skip
Required:: false
Description:: Skips execution of this task.
== jreleaser-assemble
=== jreleaser-assemble
Upload all distributions.
@@ -179,7 +207,7 @@ Property:: jreleaser.skip
Required:: false
Description:: Skips execution of this task.
== jreleaser-changelog
=== jreleaser-changelog
Calculate the changelog.
@@ -201,7 +229,7 @@ Property:: jreleaser.skip
Required:: false
Description:: Skips execution of this task.
== jreleaser-checksum
=== jreleaser-checksum
Calculate checksums.
@@ -223,7 +251,7 @@ Property:: jreleaser.skip
Required:: false
Description:: Skips execution of this task.
== jreleaser-sign
=== jreleaser-sign
Sign release artifacts.
@@ -245,7 +273,7 @@ Property:: jreleaser.skip
Required:: false
Description:: Skips execution of this task.
== jreleaser-release
=== jreleaser-release
Create or update a release.
@@ -277,7 +305,7 @@ Property:: jreleaser.skip
Required:: false
Description:: Skips execution of this task.
== jreleaser-prepare
=== jreleaser-prepare
Prepare all distributions.
@@ -319,7 +347,7 @@ Property:: jreleaser.skip
Required:: false
Description:: Skips execution of this task.
== jreleaser-package
=== jreleaser-package
Package all distributions.
@@ -371,7 +399,7 @@ Property:: jreleaser.skip
Required:: false
Description:: Skips execution of this task.
== jreleaser-upload
=== jreleaser-upload
Upload all distributions.
@@ -423,7 +451,7 @@ Property:: jreleaser.skip
Required:: false
Description:: Skips execution of this task.
== jreleaser-announce
=== jreleaser-announce
Announce a release.
@@ -465,7 +493,7 @@ Property:: jreleaser.skip
Required:: false
Description:: Skips execution of this task.
== jreleaser-full-release
=== jreleaser-full-release
Perform a full release.

View File

@@ -25,9 +25,69 @@ Commands:
full-release Perform a full release.
----
== Install
[tabs]
====
Windows::
+
--
*sdkman*
[source]
----
sdk install jreleaser
----
*manually*
Download the pre-compiled binary from the link:https://github.com/jreleaser/jreleaser/releases[releases page],
uncompress and copy to the desired location.
--
Linux::
+
--
*sdkman*
[source]
----
sdk install jreleaser
----
*manually*
Download the pre-compiled binary from the link:https://github.com/jreleaser/jreleaser/releases[releases page],
uncompress and copy to the desired location.
--
Mac::
+
--
*homebrew tap*
[source]
----
brew install jreleaser/tap/jreleaser
----
*sdkman*
[source]
----
sdk install jreleaser
----
*manually*
Download the pre-compiled binary from the link:https://github.com/jreleaser/jreleaser/releases[releases page],
uncompress and copy to the desired location.
--
====
== Configuration
JReleaser must be configured using the YAML, TOML, or JSON DSLs shown at xref:configuration:index.adoc[].
== Commands
The following commands are supported:
== init
=== init
[source,bash]
----
@@ -49,7 +109,7 @@ Currently supported formats are: `yml`, `json`.
The file will be generated at `<basedir>` if specified, otherwise at the current directory.
== config
=== config
[source,bash]
----
@@ -74,7 +134,7 @@ found at the current directory.
If `--basedir` is undefined then the command assumes it's the same directory that contains the resolved config file.
== template
=== template
[source,bash]
----
@@ -118,7 +178,7 @@ xref:ROOT:distributions/index.adoc[distribution types].
The value of `--tool-name` must match any of the available xref:configuration:packagers/index.adoc[].
== assemble
=== assemble
[source,bash]
----
@@ -153,7 +213,7 @@ xref:configuration:assemble/index.adoc[assemblers] section.
This command must be invoked separatedly from the others as some of the assmeblers are platform specific.
== changelog
=== changelog
[source,bash]
----
@@ -176,7 +236,7 @@ found at the current directory.
If `--basedir` is undefined then the command assumes it's the same directory that contains the resolved config file.
== checksum
=== checksum
[source,bash]
----
@@ -199,7 +259,7 @@ found at the current directory.
If `--basedir` is undefined then the command assumes it's the same directory that contains the resolved config file.
== sign
=== sign
[source,bash]
----
@@ -222,7 +282,7 @@ found at the current directory.
If `--basedir` is undefined then the command assumes it's the same directory that contains the resolved config file.
== release
=== release
[source,bash]
----
@@ -301,7 +361,7 @@ IMPORTANT: None of the command flags that override model properties can be used
NOTE: Use `-y` or `--dryrun` during development to verify your configuration settings. No network uploads nor repository
mutations should occur when this mode is activated.
== prepare
=== prepare
[source,bash]
----
@@ -359,7 +419,7 @@ Prepare a single distribution with a single tool:
$ jreleaser prepare --distribution-name app --tool-name brew
----
== package
=== package
[source,bash]
----
@@ -421,7 +481,7 @@ $ jreleaser package --distribution-name app --tool-name brew
NOTE: Use `-y` or `--dryrun` during development to verify your configuration settings. No network uploads nor repository
mutations should occur when this mode is activated.
== upload
=== upload
[source,bash]
----
@@ -483,7 +543,7 @@ $ jreleaser upload --distribution-name app --tool-name brew
NOTE: Use `-y` or `--dryrun` during development to verify your configuration settings. No network uploads nor repository
mutations should occur when this mode is activated.
== announce
=== announce
[source,bash]
----
@@ -529,7 +589,7 @@ $ jreleaser announce --announcer-name brew
NOTE: Use `-y` or `--dryrun` during development to verify your configuration settings. No network uploads nor repository
mutations should occur when this mode is activated.
== full-release
=== full-release
[source,bash]
----

View File

@@ -1,13 +1,13 @@
= JReleaser Docker Image
Wraps the xref:cli.adoc[] with an Ubuntu based docker image:
Wraps the xref:jreleaser-cli.adoc[] with an Ubuntu based docker image:
link:https://hub.docker.com/r/jreleaser/jreleaser-slim[jreleaser/jreleaser-slim]. This image may be used to run
JReleaser without having a pre-installed Java runtime on your system.
IMPORTANT: Additional packaging options such as xref:configuration:packagers/snap.adoc[Snapcraft] and
xref:configuration:packagers/chocolatey.adoc[] are not available in this mode.
Every command exposed by xref:cli.adoc[] can be invoked with this image.
Every command exposed by xref:jreleaser-cli.adoc[] can be invoked with this image.
You must mount the working directory at the `/workspace` volume, for example assuming the current directory is the
starting point:

View File

@@ -2,11 +2,26 @@
Executes a JReleaser workflow as a Gradle plugin.
== Install
[source,groovy]
[subs="attributes"]
.build.gradle
----
plugins {
id 'org.jreleaser' version '{jreleaser-version}'
}
----
== Configuration
JReleaser must be configured using the Gradle DSL shown at xref:configuration:index.adoc[].
== Tasks
The following tasks are provided:
== jreleaserConfig
=== jreleaserConfig
Display current configuration.
@@ -26,7 +41,7 @@ Option:: assembly
Required:: false
Description:: Displays assembly configuration.
== jreleaserTemplate
=== jreleaserTemplate
Generate a tool/announcer template.
@@ -87,7 +102,7 @@ Option:: snapshot
Required:: false
Description:: Lookup snapshot specific template files.
== jreleaserAssemble
=== jreleaserAssemble
Assembles distributions
@@ -107,23 +122,23 @@ Option:: assembler-name
Required:: true
Description:: The name of the assembler.
== jreleaserChangelog
=== jreleaserChangelog
Calculate the changelog.
== jreleaserChecksum
=== jreleaserChecksum
Calculate checksums.
== jreleaserSign
=== jreleaserSign
Sign release artifacts.
== jreleaserRelease
=== jreleaserRelease
Create or update a release
== jreleaserPrepare
=== jreleaserPrepare
Prepare all distributions.
@@ -145,7 +160,7 @@ Option:: tool-name
Required:: false
Description:: The name of the tool for preparing distributions.
== jreleaserPackage
=== jreleaserPackage
Package all distributions.
@@ -167,7 +182,7 @@ Option:: tool-name
Required:: false
Description:: The name of the tool for packaging distributions.
== jreleaserUpload
=== jreleaserUpload
Upload all distributions.
@@ -189,7 +204,7 @@ Option:: tool-name
Required:: false
Description:: The name of the tool for uploading distributions.
== jreleaserAnnounce
=== jreleaserAnnounce
Announce a release.
@@ -201,6 +216,6 @@ Option:: announcer-name
Required:: false
Description:: The name of the announcer to be used.
== jreleaserFullRelease
=== jreleaserFullRelease
Perform a full release.

View File

@@ -2,14 +2,31 @@
Executes a JReleaser workflow as a Maven plugin.
== Install
[source,xml]
[subs="verbatim,attributes"]
.pom.xml
----
<plugin>
<groupId>org.jreleaser</groupId>
<artifactId>jreleaser-maven-plugin</artifactId>
<version>{jreleaser-version}</version>
</plugin>
----
== Configuration
JReleaser must be configured using the Maven DSL shown at xref:configuration:index.adoc[].
== Goals
None of the exposed MOJOs are bound to a specific life-cycle phase, letting you decide when and how that
should happen in your build.
The following MOJOs are provided:
== jreleaser:config
=== jreleaser:config
Display current configuration.
@@ -37,7 +54,7 @@ Property:: jreleaser.config.skip
Required:: false
Description:: Skips execution of this MOJO.
== jreleaser:template
=== jreleaser:template
Generate a tool/announcer template.
@@ -109,7 +126,7 @@ Property:: jreleaser.template.skip
Required:: false
Description:: Skips execution of this MOJO.
== jreleaser:assemble
=== jreleaser:assemble
Assemble distributions.
@@ -141,7 +158,7 @@ Property:: jreleaser.assemble.skip
Required:: false
Description:: Skips execution of this MOJO.
== jreleaser:changelog
=== jreleaser:changelog
Calculate the changelog.
@@ -153,7 +170,7 @@ Property:: jreleaser.changelog.skip
Required:: false
Description:: Skips execution of this MOJO.
== jreleaser:checksum
=== jreleaser:checksum
Calculate checksums.
@@ -165,7 +182,7 @@ Property:: jreleaser.checksum.skip
Required:: false
Description:: Skips execution of this MOJO.
== jreleaser:sign
=== jreleaser:sign
Sign release artifacts.
@@ -177,7 +194,7 @@ Property:: jreleaser.sign.skip
Required:: false
Description:: Skips execution of this MOJO.
== jreleaser:release
=== jreleaser:release
Create or update a release.
@@ -199,7 +216,7 @@ Property:: jreleaser.release.skip
Required:: false
Description:: Skips execution of this MOJO.
== jreleaser:prepare
=== jreleaser:prepare
Prepare all distributions.
@@ -231,7 +248,7 @@ Property:: jreleaser.prepare.skip
Required:: false
Description:: Skips execution of this MOJO.
== jreleaser:package
=== jreleaser:package
Package all distributions.
@@ -273,7 +290,7 @@ Property:: jreleaser.package.skip
Required:: false
Description:: Skips execution of this MOJO.
== jreleaser:upload
=== jreleaser:upload
Upload all distributions.
@@ -315,7 +332,7 @@ Property:: jreleaser.upload.skip
Required:: false
Description:: Skips execution of this MOJO.
== jreleaser:announce
=== jreleaser:announce
Announce a release.
@@ -347,7 +364,7 @@ Property:: jreleaser.announce.skip
Required:: false
Description:: Skips execution of this MOJO.
== jreleaser:full-release
=== jreleaser:full-release
Perform a full release.

View File

@@ -0,0 +1,7 @@
= JReleaser Tool Provider
Wraps the xref:jreleaser-cli.adoc[] with an implementation of the
link:https://docs.oracle.com/javase/9/docs/api/java/util/spi/ToolProvider.html[java.util.spi.ToolProvider]
interface.
Every command exposed by xref:jreleaser-cli.adoc[] can be invoked by this `ToolProvider`.

View File

@@ -1,7 +0,0 @@
= JReleaser Tool Provider
Wraps the xref:cli.adoc[] with an implementation of the
link:https://docs.oracle.com/javase/9/docs/api/java/util/spi/ToolProvider.html[java.util.spi.ToolProvider]
interface.
Every command exposed by xref:cli.adoc[] can be invoked by this `ToolProvider`.