mirror of
https://github.com/jlengrand/jreleaser.github.io.git
synced 2026-03-10 08:31:25 +00:00
Document latest changes
This commit is contained in:
Binary file not shown.
|
Before Width: | Height: | Size: 98 KiB After Width: | Height: | Size: 109 KiB |
@@ -2,3 +2,4 @@
|
||||
** xref:distributions/java-binary.adoc[]
|
||||
** xref:distributions/single-jar.adoc[]
|
||||
** xref:distributions/jlink.adoc[]
|
||||
** xref:distributions/native-image.adoc[]
|
||||
|
||||
@@ -44,6 +44,8 @@ applications. Generates distribution files that follow the expected structure. A
|
||||
* 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.
|
||||
|
||||
You may also configure a xref:configuration:assemble/jlink.adoc[] assembler.
|
||||
|
||||
== Packager Support
|
||||
|
||||
[%header, cols="<,^"]
|
||||
|
||||
31
docs/modules/ROOT/pages/distributions/native-image.adoc
Normal file
31
docs/modules/ROOT/pages/distributions/native-image.adoc
Normal file
@@ -0,0 +1,31 @@
|
||||
= Native Image
|
||||
|
||||
Distributions of this type provide a platform specific native binary, as a consequence you *must* specify a value for
|
||||
their platform.
|
||||
|
||||
== Creating a Distribution
|
||||
|
||||
Native image binaries can be created in many ways. Frameworks such as Micronaut, Quarkus, and Helidon provide Maven and
|
||||
Gradle plugins that can create such binaries.
|
||||
|
||||
.Maven
|
||||
|
||||
* link:https://www.graalvm.org/reference-manual/native-image/NativeImageMavenPlugin/[native-image-maven-plugin].
|
||||
|
||||
You may also configure a xref:configuration:assemble/native-image.adoc[] assembler.
|
||||
|
||||
== 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_n}
|
||||
| xref:configuration:packagers/scoop.adoc[] | {icon_req_y}
|
||||
| xref:configuration:packagers/snap.adoc[] | {icon_req_y}
|
||||
|===
|
||||
|
||||
|
||||
|
||||
@@ -15,6 +15,13 @@ image::jreleaser-workflow.png[]
|
||||
|
||||
The following sections describe these steps:
|
||||
|
||||
== Assemble
|
||||
|
||||
Assembles distributions such as Jlink and Native Image. Outputs will automatically configure/update matching named
|
||||
distributions for xref:_prepare[], xref:_package[], and xref:_upload[].
|
||||
|
||||
Given the nature of platform specific distributions this step must be invoked separatedly from the others.
|
||||
|
||||
== Changelog
|
||||
|
||||
Creates the changelog, either by taking a supplemented external file or calculates it based on the last tag that matches
|
||||
|
||||
@@ -6,6 +6,9 @@
|
||||
** xref:release/github.adoc[]
|
||||
** xref:release/gitlab.adoc[]
|
||||
** xref:release/gitea.adoc[]
|
||||
* xref:assemble/index.adoc[]
|
||||
** xref:assemble/jlink.adoc[]
|
||||
** xref:assemble/native-image.adoc[]
|
||||
* xref:packagers/index.adoc[]
|
||||
** xref:packagers/chocolatey.adoc[]
|
||||
** xref:packagers/docker.adoc[]
|
||||
|
||||
92
docs/modules/configuration/pages/assemble/index.adoc
Normal file
92
docs/modules/configuration/pages/assemble/index.adoc
Normal file
@@ -0,0 +1,92 @@
|
||||
= Assemble
|
||||
|
||||
Some distribution types may be assembled by JReleaser.
|
||||
|
||||
include::partial$legend.adoc[]
|
||||
|
||||
[tabs]
|
||||
====
|
||||
YAML::
|
||||
+
|
||||
[source,yaml]
|
||||
[subs="+macros"]
|
||||
----
|
||||
# icon:dot-circle[]
|
||||
assemble:
|
||||
# Enable or disable all configured assemblers.
|
||||
# Defaults to `true`.
|
||||
# icon:dot-circle[]
|
||||
enabled: true
|
||||
----
|
||||
TOML::
|
||||
+
|
||||
[source,toml]
|
||||
[subs="+macros"]
|
||||
----
|
||||
# icon:dot-circle[]
|
||||
[assemble]
|
||||
|
||||
# Enable or disable all configured assemblers.
|
||||
# Defaults to `true`.
|
||||
# icon:dot-circle[]
|
||||
enable = true
|
||||
----
|
||||
JSON::
|
||||
+
|
||||
[source,json]
|
||||
[subs="+macros"]
|
||||
----
|
||||
{
|
||||
// icon:dot-circle[]
|
||||
"assemble": {
|
||||
// Enable or disable all configured assemblers.
|
||||
// Defaults to `true`.
|
||||
// icon:dot-circle[]
|
||||
"enabled": true
|
||||
}
|
||||
}
|
||||
----
|
||||
Maven::
|
||||
+
|
||||
[source,xml]
|
||||
[subs="+macros,verbatim"]
|
||||
----
|
||||
<jreleaser>
|
||||
<!--
|
||||
icon:dot-circle[]
|
||||
-->
|
||||
<assemble>
|
||||
<!--
|
||||
Enable or disable all configured assemblers.
|
||||
Defaults to `true`.
|
||||
icon:dot-circle[]
|
||||
-->
|
||||
<enabled>true</enabled>
|
||||
</assemble>
|
||||
</jreleaser>
|
||||
----
|
||||
Gradle::
|
||||
+
|
||||
[source,groovy]
|
||||
[subs="+macros"]
|
||||
----
|
||||
jreleaser {
|
||||
// icon;dot-circle[]
|
||||
assemble {
|
||||
// Enable or disable all configured assemblers.
|
||||
// Defaults to `true`.
|
||||
// icon:dot-circle[]
|
||||
enabled = true
|
||||
}
|
||||
}
|
||||
----
|
||||
====
|
||||
|
||||
Assemblers will configure a matching distribution by name if it exists, otherwise they'll create a new distribution
|
||||
with their respective name. Assemblers can configure the following distribution properties:
|
||||
|
||||
* active
|
||||
* executable
|
||||
* java
|
||||
* artifacts
|
||||
* extraProperties
|
||||
803
docs/modules/configuration/pages/assemble/jlink.adoc
Normal file
803
docs/modules/configuration/pages/assemble/jlink.adoc
Normal file
@@ -0,0 +1,803 @@
|
||||
= Jlink
|
||||
|
||||
Creates a Java Runtime image using link:https://docs.oracle.com/en/java/javase/11/tools/jlink.html[Jlink].
|
||||
|
||||
TIP: Cross platform Java runtime images may be created however you must ensure that all configured JDKs have the
|
||||
same matching major version.
|
||||
|
||||
IMPORTANT: You have to install additional JDKs to enable cross-platform images. JReleaser will *not* install these JDKS
|
||||
for you.
|
||||
|
||||
include::partial$legend.adoc[]
|
||||
|
||||
[tabs]
|
||||
====
|
||||
YAML::
|
||||
+
|
||||
[source,yaml]
|
||||
[subs="+macros"]
|
||||
----
|
||||
# icon:dot-circle[]
|
||||
assemble:
|
||||
# icon:dot-circle[]
|
||||
jlink:
|
||||
# Assemblers require a name.
|
||||
# icon:exclamation-triangle[]
|
||||
app:
|
||||
|
||||
# Enables or disables the assembler.
|
||||
# Valid values are [`NEVER`, `ALWAYS`, `RELEASE`, `SNAPSHOT`].
|
||||
# Defaults to `NEVER`.
|
||||
# icon:dot-circle[]
|
||||
active: ALWAYS
|
||||
|
||||
# Name of the executable launcher.
|
||||
# If left undefined, will use ${assembler.name}.
|
||||
# icon:dot-circle[]
|
||||
executable: app
|
||||
|
||||
# Directory with file templates used to prepare the Jlink assembler.
|
||||
# Defaults to `src/jreleaser/assemblers/${distribution.name}/jlink`.
|
||||
# If specified, path must exist.
|
||||
# icon:dot-circle[]
|
||||
templateDirectory: path/to/jlink/templates
|
||||
|
||||
# Name of the generated image.
|
||||
# If left undefined, will use
|
||||
# ${project.java.groupId}.${project.java.artifactId}.${project.version}.
|
||||
# icon:dot-circle[] icon:file-alt[]
|
||||
imageName: app
|
||||
|
||||
# Name of main module (if any).
|
||||
# Define only if the application is modular.
|
||||
# icon:dot-circle[]
|
||||
moduleName: com.acme.demo
|
||||
|
||||
# List of module names.
|
||||
# Define only if jdeps can't find all required modules.
|
||||
# icon:dot-circle[]
|
||||
moduleNames:
|
||||
- java.base
|
||||
- com.acme.demo
|
||||
|
||||
# List of JDKs for generating cross-platform images.
|
||||
# icon:dot-circle[] icon:file-alt[]
|
||||
targetJdks:
|
||||
- path: path/to/jdk
|
||||
platform: osx
|
||||
- path: path/to/jdk
|
||||
platform: linux
|
||||
|
||||
# The JDK to use.
|
||||
# If undefined, will use the current JDK running JReleaser.
|
||||
# icon:exclamation-triangle[] icon:file-alt[]
|
||||
jdk:
|
||||
path: path/to/jdk
|
||||
platform: linux
|
||||
|
||||
# A list of build arguments.
|
||||
# Defaults are shown.
|
||||
# icon:dot-circle[]
|
||||
args:
|
||||
- "--no-header-files"
|
||||
- "--no-man-pages"
|
||||
- "--compress=2"
|
||||
- "--strip-debug"
|
||||
|
||||
# The executable JAR that contains the application.
|
||||
# icon:exclamation-triangle[] icon:file-alt[]
|
||||
mainJar:
|
||||
path: path/to/app.jar
|
||||
|
||||
# Defines a list of additional JARs as globs.
|
||||
# icon:dot-circle[]
|
||||
jars:
|
||||
# The directory to search.
|
||||
# If undefined, will use the project's basedir.
|
||||
# icon:dot-circle[] icon:file-alt[]
|
||||
- directory: some/directory
|
||||
|
||||
# The pattern to apply for inclusion.
|
||||
# If undefined, will use `*`.
|
||||
# icon:dot-circle[]
|
||||
include: '*.jar'
|
||||
|
||||
# The pattern to apply for exclusion.
|
||||
# icon:dot-circle[]
|
||||
exclude: 'secret'
|
||||
|
||||
# Recursive search.
|
||||
# Defaults to `false`.
|
||||
# icon:dot-circle[]
|
||||
recursive: true
|
||||
|
||||
# Additional properties used when evaluating templates.
|
||||
# icon:dot-circle[]
|
||||
extraProperties:
|
||||
# Key will be capitalized and prefixed with `jlink`, i.e, `jlinkFoo`.
|
||||
foo: bar
|
||||
|
||||
# icon:dot-circle[]
|
||||
java:
|
||||
# Maven coordinates: groupId.
|
||||
# If left undefined, will use ${project.java.groupId}.
|
||||
# icon:dot-circle[]
|
||||
groupId: com.acme
|
||||
|
||||
# Maven coordinates: artifactId.
|
||||
# If left undefined, will use ${project.java.artifactId}.
|
||||
# icon:dot-circle[]
|
||||
artifactId: app
|
||||
|
||||
# The minimum Java version required by consumers to run the application.
|
||||
# If left undefined, will use ${project.java.version}.
|
||||
# icon:dot-circle[]
|
||||
version: 8
|
||||
|
||||
# The application's entry point.
|
||||
# If left undefined, will use ${project.java.mainClass}.
|
||||
# icon:dot-circle[]
|
||||
mainClass: com.acme.Main
|
||||
|
||||
# Identifies the project as being member of a multi-project build.
|
||||
# If left undefined, will use ${project.java.multiProject}.
|
||||
# icon:dot-circle[]
|
||||
multiProject: false
|
||||
|
||||
# Additional properties used when evaluating templates.
|
||||
# icon:dot-circle[]
|
||||
extraProperties:
|
||||
# Key will be capitalized and prefixed with `java`, i.e, `javaFoo`.
|
||||
foo: bar
|
||||
----
|
||||
TOML::
|
||||
+
|
||||
[source,toml]
|
||||
[subs="+macros"]
|
||||
----
|
||||
# Assemblers require a name.
|
||||
# icon:exclamation-triangle[]
|
||||
[assemble.jlink.app]
|
||||
|
||||
# Enables or disables the assembler.
|
||||
# Valid values are [`NEVER`, `ALWAYS`, `RELEASE`, `SNAPSHOT`].
|
||||
# Defaults to `NEVER`.
|
||||
# icon:dot-circle[]
|
||||
active = "ALWAYS"
|
||||
|
||||
# Name of the executable launcher.
|
||||
# If left undefined, will use ${assembler.name}.
|
||||
# icon:dot-circle[]
|
||||
executable = "app"
|
||||
|
||||
# Directory with file templates used to prepare the Jlink assembler.
|
||||
# Defaults to `src/jreleaser/assemblers/${distribution.name}/jlink`.
|
||||
# If specified, path must exist.
|
||||
# icon:dot-circle[]
|
||||
templateDirectory = "path/to/jlink/templates"
|
||||
|
||||
# Name of the generated image.
|
||||
# If left undefined, will use
|
||||
# ${project.java.groupId}.${project.java.artifactId}.${project.version}.
|
||||
# icon:dot-circle[] icon:file-alt[]
|
||||
imageName = "app"
|
||||
|
||||
# Name of main module (if any).
|
||||
# Define only if the application is modular.
|
||||
# icon:dot-circle[]
|
||||
moduleName = "com.acme.demo"
|
||||
|
||||
# List of module names.
|
||||
# Define only if jdeps can't find all required modules.
|
||||
# icon:dot-circle[]
|
||||
moduleName = [
|
||||
"java.base",
|
||||
"com.acme.demo"]
|
||||
|
||||
# List of JDKs for generating cross-platform images.
|
||||
# icon:dot-circle[] icon:file-alt[]
|
||||
targetJdks = [
|
||||
{ path = "path/to/jdk", platform = "osx" },
|
||||
{ path = "path/to/jdk", platform = "linux" }]
|
||||
|
||||
# The JDK to use.
|
||||
# If undefined, will use the current JDK running JReleaser.
|
||||
# icon:exclamation-triangle[] icon:file-alt[]
|
||||
jdk = { path = "path/to/jdk", platform = "linux" }
|
||||
|
||||
# A list of build arguments.
|
||||
# Defaults are shown
|
||||
# icon:dot-circle[]
|
||||
args = ["--no-header-files",
|
||||
"--no-man-pages",
|
||||
"--compress=2",
|
||||
"--strip-debug"]
|
||||
|
||||
# The executable JAR that contains the application.
|
||||
# icon:exclamation-triangle[] icon:file-alt[]
|
||||
mainJar = { path = "path/to/app.jar" }
|
||||
|
||||
# Defines a list of additional JARs as globs.
|
||||
# icon:dot-circle[]
|
||||
pass:[[[assemble.jlink.app.jars]]]
|
||||
# The directory to search.
|
||||
# If undefined, will use the project's basedir.
|
||||
# icon:dot-circle[] icon:file-alt[]
|
||||
directory = "some/directory"
|
||||
|
||||
# The pattern to apply for inclusion.
|
||||
# If undefined, will use `*`.
|
||||
# icon:dot-circle[]
|
||||
include = "*.jar"
|
||||
|
||||
# The pattern to apply for exclusion.
|
||||
# icon:dot-circle[]
|
||||
exclude = "secret"
|
||||
|
||||
# Recursive search.
|
||||
# Defaults to `false`.
|
||||
# icon:dot-circle[]
|
||||
recursive = true
|
||||
|
||||
# Additional properties used when evaluating templates.
|
||||
# icon:dot-circle[]
|
||||
extraProperties.foo = "bar"
|
||||
# Key will be capitalized and prefixed with `jlink`, i.e, `jlinkFoo`.
|
||||
|
||||
# Maven coordinates: groupId.
|
||||
# If left undefined, will use ${project.java.groupId}.
|
||||
# icon:dot-circle[]
|
||||
java.groupId = "com.acme"
|
||||
|
||||
# Maven coordinates: artifactId.
|
||||
# If left undefined, will use ${project.java.artifactId}.
|
||||
# icon:dot-circle[]
|
||||
java.artifactId = "app"
|
||||
|
||||
# The minimum Java version required by consumers to run the application.
|
||||
# If left undefined, will use ${project.java.version}.
|
||||
# icon:dot-circle[]
|
||||
java.version = "8"
|
||||
|
||||
# The application's entry point.
|
||||
# If left undefined, will use ${project.java.mainClass}.
|
||||
# icon:dot-circle[]
|
||||
java.mainClass = "com.acme.Main"
|
||||
|
||||
# Identifies the project as being member of a multi-project build.
|
||||
# If left undefined, will use ${project.java.multiProject}.
|
||||
# icon:dot-circle[]
|
||||
java.multiProject = false
|
||||
|
||||
# Additional properties used when evaluating templates.
|
||||
# icon:dot-circle[]
|
||||
java.extraProperties.foo = "bar"
|
||||
# Key will be capitalized and prefixed with `java`, i.e, `javaFoo`.
|
||||
----
|
||||
JSON::
|
||||
+
|
||||
[source,json]
|
||||
[subs="+macros"]
|
||||
----
|
||||
{
|
||||
// icon:dot-circle[]
|
||||
"assemble": {
|
||||
// icon:dot-circle[]
|
||||
"jlink": {
|
||||
// Assemblers require a name.
|
||||
// icon:exclamation-triangle[]
|
||||
"app": {
|
||||
|
||||
// Enables or disables the assembler.
|
||||
// Valid values are [`NEVER`, `ALWAYS`, `RELEASE`, `SNAPSHOT`].
|
||||
// Defaults to `NEVER`.
|
||||
// icon:dot-circle[]
|
||||
"active": "ALWAYS",
|
||||
|
||||
// Name of the executable launcher.
|
||||
// If left undefined, will use ${assembler.name}.
|
||||
// icon:dot-circle[]
|
||||
"executable": "app",
|
||||
|
||||
// Directory with file templates used to prepare the Jlink assembler.
|
||||
// Defaults to `src/jreleaser/assemblers/${distribution.name}/jlink`.
|
||||
// If specified, path must exist.
|
||||
// icon:dot-circle[]
|
||||
"templateDirectory": "path/to/jlink/templates",
|
||||
|
||||
// Name of the generated image.
|
||||
// If left undefined, will use
|
||||
// ${project.java.groupId}.${project.java.artifactId}.${project.version}.
|
||||
// icon:dot-circle[] icon:file-alt[]
|
||||
"imageName": "app",
|
||||
|
||||
// Name of main module (if any).
|
||||
// Define only if the application is modular.
|
||||
// icon:dot-circle[]
|
||||
"moduleName": "com.acme.demo",
|
||||
|
||||
// List of module names.
|
||||
// Define only if jdeps can't find all required modules.
|
||||
// icon:dot-circle[]
|
||||
"moduleNames": [
|
||||
"java.base",
|
||||
"com.acme.demo"
|
||||
],
|
||||
|
||||
// List of JDKs for generating cross-platform images.
|
||||
// icon:dot-circle[] icon:file-alt[]
|
||||
"targetJdks": [
|
||||
{
|
||||
"path": "path/to/jdk",
|
||||
"platform": "osx"
|
||||
},
|
||||
{
|
||||
"path": "path/to/jdk",
|
||||
"platform": "linux"
|
||||
}
|
||||
],
|
||||
|
||||
// The JDK to use.
|
||||
// If undefined, will use the current JDK running JReleaser.
|
||||
// icon:exclamation-triangle[] icon:file-alt[]
|
||||
"jdk": {
|
||||
"path": "path/to/jdk",
|
||||
"platform": "linux"
|
||||
},
|
||||
|
||||
// A list of build arguments.
|
||||
// Defualts are shown.
|
||||
// icon:dot-circle[]
|
||||
"args": [
|
||||
"--no-header-files",
|
||||
"--no-man-pages",
|
||||
"--compress=2",
|
||||
"--strip-debug"
|
||||
],
|
||||
|
||||
// The executable JAR that contains the application.
|
||||
// icon:exclamation-triangle[] icon:file-alt[]
|
||||
"mainJar": {
|
||||
"path": "path/to/app.jar"
|
||||
},
|
||||
|
||||
// Defines a list of additional JARs as globs.
|
||||
// icon:dot-circle[]
|
||||
"jars": [
|
||||
{
|
||||
// The directory to search.
|
||||
// If undefined, will use the project's basedir.
|
||||
// icon:dot-circle[] icon:file-alt[]
|
||||
"directory": "some/directory",
|
||||
|
||||
// The pattern to apply for inclusion.
|
||||
// If undefined, will use `*`.
|
||||
// icon:dot-circle[]
|
||||
"include": "*.jar",
|
||||
|
||||
// The pattern to apply for exclusion.
|
||||
// icon:dot-circle[]
|
||||
"exclude": "secret",
|
||||
|
||||
// Recursive search.
|
||||
// Defaults to `false`.
|
||||
// icon:dot-circle[]
|
||||
"recursive": true
|
||||
}
|
||||
],
|
||||
|
||||
// Additional properties used when evaluating templates.
|
||||
// icon:dot-circle[]
|
||||
"extraProperties": {
|
||||
// Key will be capitalized and prefixed with `jlink`, i.e, `jlinkFoo`.
|
||||
"foo": "bar"
|
||||
},
|
||||
|
||||
// icon:dot-circle[]
|
||||
"java": {
|
||||
// Maven coordinates: groupId.
|
||||
// If left undefined, will use ${project.java.groupId}.
|
||||
// icon:dot-circle[]
|
||||
"groupId": "com.acme",
|
||||
|
||||
// Maven coordinates: artifactId.
|
||||
// If left undefined, will use ${project.java.artifactId}.
|
||||
// icon:dot-circle[]
|
||||
"artifactId": "app",
|
||||
|
||||
// The minimum Java version required by consumers to run the application.
|
||||
// If left undefined, will use ${project.java.version}.
|
||||
// icon:dot-circle[]
|
||||
"version": "8",
|
||||
|
||||
// The application's entry point.
|
||||
// If left undefined, will use ${project.java.mainClass}.
|
||||
// icon:dot-circle[]
|
||||
"mainClass": "com.acme.Main",
|
||||
|
||||
// Identifies the project as being member of a multi-project build.
|
||||
// If left undefined, will use ${project.java.multiProject}.
|
||||
// icon:dot-circle[]
|
||||
"multiProject": false,
|
||||
|
||||
// Additional properties used when evaluating templates.
|
||||
// icon:dot-circle[]
|
||||
"extraProperties": {
|
||||
// Key will be capitalized and prefixed with `java`, i.e, `javaFoo`.
|
||||
"foo": "bar"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
----
|
||||
Maven::
|
||||
+
|
||||
[source,xml]
|
||||
[subs="+macros,verbatim"]
|
||||
----
|
||||
<jreleaser>
|
||||
<assemble>
|
||||
<!--
|
||||
icon:dot-circle[]
|
||||
-->
|
||||
<jlink>
|
||||
<!--
|
||||
Assemblers require a name.
|
||||
icon:exclamation-triangle[]
|
||||
-->
|
||||
<app>
|
||||
<!--
|
||||
Enables or disables the distribution.
|
||||
Valid values are [`NEVER`, `ALWAYS`, `RELEASE`, `SNAPSHOT`].
|
||||
Defaults to `ALWAYS`.
|
||||
icon:dot-circle[]
|
||||
-->
|
||||
<active>ALWAYS</active>
|
||||
|
||||
<!--
|
||||
The distribution type.
|
||||
Used to determine packager templates.
|
||||
Supported values are>[JAVA_BINARY].
|
||||
icon:exclamation-triangle[]
|
||||
-->
|
||||
<type>JAVA_BINARY</type>
|
||||
|
||||
<!--
|
||||
Name of the executable launcher.
|
||||
If left undefined, will use ${distribution.name}.
|
||||
icon:dot-circle[]
|
||||
-->
|
||||
<executable>app</executable>
|
||||
|
||||
<!--
|
||||
Directory with file templates used to prepare the Jlink assembler.
|
||||
Defaults to `src/jreleaser/assemblers/${distribution.name}/jlink`.
|
||||
If specified, path must exist.
|
||||
icon:dot-circle[]
|
||||
-->
|
||||
<templateDirectory>>path/to/brew/templates</templateDirectory>
|
||||
|
||||
<!--
|
||||
Name of the generated image.
|
||||
If left undefined, will use
|
||||
${project.java.groupId}.${project.java.artifactId}.${project.version}.
|
||||
icon:dot-circle[] icon:file-alt[]
|
||||
-->
|
||||
<imageName>app</imageName>
|
||||
|
||||
<!--
|
||||
Name of main module (if any).
|
||||
Define only if the application is modular.
|
||||
icon:dot-circle[]
|
||||
-->
|
||||
<moduleName>com.acme.demo</moduleName>
|
||||
|
||||
<!--
|
||||
List of module names.
|
||||
Define only if jdeps can't find all required modules.
|
||||
icon:dot-circle[]
|
||||
-->
|
||||
<moduleNames>
|
||||
<moduleName>java.base</moduleName>
|
||||
<moduleName>com.acme.demo</moduleName>
|
||||
</moduleNames>
|
||||
|
||||
<!--
|
||||
List of JDKs for generating cross-platform images.
|
||||
icon:dot-circle[] icon:file-alt[]
|
||||
-->
|
||||
<targetJdks>
|
||||
<targetJdk>
|
||||
<path>path/to/jdk</path>
|
||||
<platform>osx</platform>
|
||||
</targetJdk>
|
||||
<targetJdk>
|
||||
<path>path/to/jdk</path>
|
||||
<platform>linux</platform>
|
||||
</targetJdk>
|
||||
</targetJdks>
|
||||
|
||||
<!--
|
||||
The JDK to use.
|
||||
If undefined, will use the current JDK running JReleaser.
|
||||
icon:exclamation-triangle[] icon:file-alt[]
|
||||
-->
|
||||
<jdk>
|
||||
<path>path/to/jdk</path>
|
||||
<platform>linux</platform>
|
||||
</jdk>
|
||||
|
||||
<!--
|
||||
The executable JAR that contains the application.
|
||||
icon:exclamation-triangle[] icon:file-alt[]
|
||||
-->
|
||||
<mainJar>
|
||||
<path>path/to/app.jar</path>
|
||||
</mainJar>
|
||||
|
||||
<!--
|
||||
A list of build arguments.
|
||||
Defaults are shown.
|
||||
icon:dot-circle[]
|
||||
-->
|
||||
<args>
|
||||
<arg>--no-header-files</arg>
|
||||
<arg>--no-man-pages</arg>
|
||||
<arg>--compress=2</arg>
|
||||
<arg>--strip-debug</arg>
|
||||
</args>
|
||||
|
||||
<!--
|
||||
Defines a list of additional JARs as globs.
|
||||
icon:dot-circle[]
|
||||
-->
|
||||
<jars>
|
||||
<jar>
|
||||
<!--
|
||||
The directory to search.
|
||||
If undefined, will use the project's basedir.
|
||||
icon:dot-circle[] icon:file-alt[]
|
||||
-->
|
||||
<directory>some/directory</directory>
|
||||
|
||||
<!--
|
||||
The pattern to apply for inclusion.
|
||||
If undefined, will use `*`.
|
||||
icon:dot-circle[]
|
||||
-->
|
||||
<include>*.jar</include>
|
||||
|
||||
<!--
|
||||
The pattern to apply for exclusion.
|
||||
icon:dot-circle[]
|
||||
-->
|
||||
<exclude>secret</exclude>
|
||||
|
||||
<!--
|
||||
Recursive search.
|
||||
Defaults to `false`.
|
||||
icon:dot-circle[]
|
||||
-->
|
||||
<recursive>true</recursive>
|
||||
</jar>
|
||||
</jars>
|
||||
|
||||
<!--
|
||||
Additional properties used when evaluating templates.
|
||||
icon:dot-circle[]
|
||||
-->
|
||||
<extraProperties>
|
||||
<!--
|
||||
Key will be capitalized and prefixed with `jlink`, i.e, `jlinkFoo`.
|
||||
-->
|
||||
<foo>bar</foo>
|
||||
</extraProperties>
|
||||
|
||||
<!--
|
||||
icon:dot-circle[]
|
||||
-->
|
||||
<java>
|
||||
<!--
|
||||
Maven coordinates>groupId.
|
||||
If left undefined, will use ${project.java.groupId}.
|
||||
icon:dot-circle[]
|
||||
-->
|
||||
<groupId>com.acme</groupId>
|
||||
|
||||
<!--
|
||||
Maven coordinates>artifactId.
|
||||
If left undefined, will use ${project.java.artifactId}.
|
||||
icon:dot-circle[]
|
||||
-->
|
||||
<artifactId>app</artifactId>
|
||||
|
||||
<!--
|
||||
The minimum Java version required by consumers to run the application.
|
||||
If left undefined, will use ${project.java.version}.
|
||||
icon:dot-circle[]
|
||||
-->
|
||||
<version>8</version>
|
||||
|
||||
<!--
|
||||
The application's entry point.
|
||||
If left undefined, will use ${project.java.mainClass}.
|
||||
icon:dot-circle[]
|
||||
-->
|
||||
<mainClass>com.acme.Main</mainClass>
|
||||
|
||||
<!--
|
||||
Identifies the project as being member of a multi-project build.
|
||||
If left undefined, will use ${project.java.multiProject}.
|
||||
icon:dot-circle[]
|
||||
-->
|
||||
<multiProject>false</multiProject>
|
||||
|
||||
<!--
|
||||
Additional properties used when evaluating templates.
|
||||
icon:dot-circle[]
|
||||
-->
|
||||
<extraProperties>
|
||||
<!--
|
||||
Key will be capitalized and prefixed with `java`, i.e, `javaFoo`.
|
||||
-->
|
||||
<foo>bar</foo>
|
||||
</extraProperties>
|
||||
</java>
|
||||
</app>
|
||||
</jlink>
|
||||
</assemble>
|
||||
</jreleaser>
|
||||
----
|
||||
Gradle::
|
||||
+
|
||||
[source,groovy]
|
||||
[subs="+macros"]
|
||||
----
|
||||
jreleaser {
|
||||
// icon:dot-circle[]
|
||||
assemble {
|
||||
// icon:dot-circle[]
|
||||
jlink {
|
||||
// Assemblers require a name.
|
||||
// icon:exclamation-triangle[]
|
||||
app {
|
||||
|
||||
// Enables or disables the assembler.
|
||||
// Valid values are [`NEVER`, `ALWAYS`, `RELEASE`, `SNAPSHOT`].
|
||||
// Defaults to `NEVER`.
|
||||
// icon:dot-circle[]
|
||||
active = 'ALWAYS'
|
||||
|
||||
// Name of the executable launcher.
|
||||
// If left undefined, will use ${assembler.name}.
|
||||
// icon:dot-circle[]
|
||||
executable = 'app'
|
||||
|
||||
// Directory with file templates used to prepare the Jlink assembler.
|
||||
// Defaults to `src/jreleaser/assemblers/${distribution.name}/jlink`.
|
||||
// If specified, path must exist.
|
||||
// icon:dot-circle[]
|
||||
templateDirectory = 'path/to/jlink/templates'
|
||||
|
||||
// Name of the generated image.
|
||||
// If left undefined, will use
|
||||
// ${project.java.groupId}.${project.java.artifactId}.${project.version}.
|
||||
// icon:dot-circle[] icon:file-alt[]
|
||||
imageName = 'app'
|
||||
|
||||
// Name of main module (if any).
|
||||
// Define only if the application is modular.
|
||||
// icon:dot-circle[]
|
||||
moduleName = 'com.acme.demo'
|
||||
|
||||
// List of module names.
|
||||
// Define only if jdeps can't find all required modules.
|
||||
// icon:dot-circle[]
|
||||
moduleNames = [
|
||||
'java.base',
|
||||
'com.acme.demo'
|
||||
]
|
||||
|
||||
// List of JDKs for generating cross-platform images.
|
||||
// icon:dot-circle[] icon:file-alt[]
|
||||
targetJdk {
|
||||
pat = 'path/to/jdk'
|
||||
platform = 'osx'
|
||||
}
|
||||
targetJdk {
|
||||
pat = 'path/to/jdk'
|
||||
platform = 'linux'
|
||||
}
|
||||
|
||||
// The JDK to use.
|
||||
// If undefined, will use the current JDK running JReleaser.
|
||||
// icon:exclamation-triangle[] icon:file-alt[]
|
||||
jdk {
|
||||
path = 'path/to/jdk'
|
||||
platform = 'linux'
|
||||
}
|
||||
|
||||
// A list of build arguments.
|
||||
// Defaults are shown.
|
||||
// icon:dot-circle[]
|
||||
addArg('--install-exit-handlers')
|
||||
addArg('--no-header-files')
|
||||
addArg('--no-man-pages')
|
||||
addArg('--compress=2')
|
||||
addArg('--strip-debug')
|
||||
|
||||
// The executable JAR that contains the application.
|
||||
// icon:exclamation-triangle[] icon:file-alt[]
|
||||
mainJar {
|
||||
path = 'path/to/app.jar'
|
||||
}
|
||||
|
||||
// Defines a list of additional JARs as globs.
|
||||
// icon:dot-circle[]
|
||||
jars {
|
||||
// The directory to search.
|
||||
// If undefined, will use the project's basedir.
|
||||
// icon:dot-circle[] icon:file-alt[]
|
||||
directory = 'some/directory'
|
||||
|
||||
// The pattern to apply for inclusion.
|
||||
// If undefined, will use `*`.
|
||||
// icon:dot-circle[]
|
||||
include = '*.jar'
|
||||
|
||||
// The pattern to apply for exclusion.
|
||||
// icon:dot-circle[]
|
||||
exclude = 'secret'
|
||||
|
||||
// Recursive search.
|
||||
// Defaults to `false`.
|
||||
// icon:dot-circle[]
|
||||
recursive = true
|
||||
}
|
||||
|
||||
// Additional properties used when evaluating templates.
|
||||
// Key will be capitalized and prefixed with `jlink`, i.e, `jlinkFoo`.
|
||||
// icon:dot-circle[]
|
||||
extraProperties.put('foo', 'bar')
|
||||
|
||||
// icon:dot-circle[]
|
||||
java {
|
||||
// Maven coordinates = groupId.
|
||||
// If left undefined, will use ${project.java.groupId}.
|
||||
// icon:dot-circle[]
|
||||
groupI = 'com.acme'
|
||||
|
||||
// Maven coordinates = artifactId.
|
||||
// If left undefined, will use ${project.java.artifactId}.
|
||||
// icon:dot-circle[]
|
||||
artifactId = 'app'
|
||||
|
||||
// The minimum Java version required by consumers to run the application.
|
||||
// If left undefined, will use ${project.java.version}.
|
||||
// icon:dot-circle[]
|
||||
version = '8'
|
||||
|
||||
// The application's entry point.
|
||||
// If left undefined, will use ${project.java.mainClass}.
|
||||
// icon:dot-circle[]
|
||||
mainClass = 'com.acme.Main'
|
||||
|
||||
// Identifies the project as being member of a multi-project build.
|
||||
// If left undefined, will use ${project.java.multiProject}.
|
||||
// icon:dot-circle[]
|
||||
multiProject = false
|
||||
|
||||
// Additional properties used when evaluating templates.
|
||||
// Key will be capitalized and prefixed with `java`, i.e, `javaFoo`.
|
||||
// icon:dot-circle[]
|
||||
extraProperties.put('foo', 'bar')
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
----
|
||||
====
|
||||
|
||||
627
docs/modules/configuration/pages/assemble/native-image.adoc
Normal file
627
docs/modules/configuration/pages/assemble/native-image.adoc
Normal file
@@ -0,0 +1,627 @@
|
||||
= Native Image
|
||||
|
||||
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.
|
||||
|
||||
include::partial$legend.adoc[]
|
||||
|
||||
[tabs]
|
||||
====
|
||||
YAML::
|
||||
+
|
||||
[source,yaml]
|
||||
[subs="+macros"]
|
||||
----
|
||||
# icon:dot-circle[]
|
||||
assemble:
|
||||
# icon:dot-circle[]
|
||||
nativeImage:
|
||||
# Assemblers require a name.
|
||||
# icon:exclamation-triangle[]
|
||||
app:
|
||||
|
||||
# Enables or disables the assembler.
|
||||
# Valid values are [`NEVER`, `ALWAYS`, `RELEASE`, `SNAPSHOT`].
|
||||
# Defaults to `NEVER`.
|
||||
# icon:dot-circle[]
|
||||
active: ALWAYS
|
||||
|
||||
# Name of the executable launcher.
|
||||
# If left undefined, will use ${assembler.name}.
|
||||
# icon:dot-circle[]
|
||||
executable: app
|
||||
|
||||
# Directory with file templates used to prepare the NativeImage assembler.
|
||||
# Defaults to `src/jreleaser/assemblers/${distribution.name}/nativeImage`.
|
||||
# If specified, path must exist.
|
||||
# icon:dot-circle[]
|
||||
templateDirectory: path/to/nativeImage/templates
|
||||
|
||||
# The GraalVM JDK to use.
|
||||
# icon:exclamation-triangle[] icon:file-alt[]
|
||||
graal:
|
||||
path: path/to/graalvm
|
||||
|
||||
# A list of build arguments.
|
||||
# The `-H:Name` argument will always be replaced with the
|
||||
# value of $executable.
|
||||
# icon:dot-circle[]
|
||||
args:
|
||||
- "--install-exit-handlers"
|
||||
|
||||
# The executable JAR that contains the application.
|
||||
# icon:exclamation-triangle[] icon:file-alt[]
|
||||
mainJar:
|
||||
path: path/to/app.jar
|
||||
|
||||
# Defines a list of additional JARs as globs.
|
||||
# icon:dot-circle[]
|
||||
jars:
|
||||
# The directory to search.
|
||||
# If undefined, will use the project's basedir.
|
||||
# icon:dot-circle[] icon:file-alt[]
|
||||
- directory: some/directory
|
||||
|
||||
# The pattern to apply for inclusion.
|
||||
# If undefined, will use `*`.
|
||||
# icon:dot-circle[]
|
||||
include: '*.jar'
|
||||
|
||||
# The pattern to apply for exclusion.
|
||||
# icon:dot-circle[]
|
||||
exclude: 'secret'
|
||||
|
||||
# Recursive search.
|
||||
# Defaults to `false`.
|
||||
# icon:dot-circle[]
|
||||
recursive: true
|
||||
|
||||
# Additional properties used when evaluating templates.
|
||||
# icon:dot-circle[]
|
||||
extraProperties:
|
||||
# Key will be capitalized and prefixed with `nativeImage`, i.e, `nativeImageFoo`.
|
||||
foo: bar
|
||||
|
||||
# icon:dot-circle[]
|
||||
java:
|
||||
# Maven coordinates: groupId.
|
||||
# If left undefined, will use ${project.java.groupId}.
|
||||
# icon:dot-circle[]
|
||||
groupId: com.acme
|
||||
|
||||
# Maven coordinates: artifactId.
|
||||
# If left undefined, will use ${project.java.artifactId}.
|
||||
# icon:dot-circle[]
|
||||
artifactId: app
|
||||
|
||||
# The minimum Java version required by consumers to run the application.
|
||||
# If left undefined, will use ${project.java.version}.
|
||||
# icon:dot-circle[]
|
||||
version: 8
|
||||
|
||||
# The application's entry point.
|
||||
# If left undefined, will use ${project.java.mainClass}.
|
||||
# icon:dot-circle[]
|
||||
mainClass: com.acme.Main
|
||||
|
||||
# Identifies the project as being member of a multi-project build.
|
||||
# If left undefined, will use ${project.java.multiProject}.
|
||||
# icon:dot-circle[]
|
||||
multiProject: false
|
||||
|
||||
# Additional properties used when evaluating templates.
|
||||
# icon:dot-circle[]
|
||||
extraProperties:
|
||||
# Key will be capitalized and prefixed with `java`, i.e, `javaFoo`.
|
||||
foo: bar
|
||||
----
|
||||
TOML::
|
||||
+
|
||||
[source,toml]
|
||||
[subs="+macros"]
|
||||
----
|
||||
# Assemblers require a name.
|
||||
# icon:exclamation-triangle[]
|
||||
[assemble.nativeImage.app]
|
||||
|
||||
# Enables or disables the assembler.
|
||||
# Valid values are [`NEVER`, `ALWAYS`, `RELEASE`, `SNAPSHOT`].
|
||||
# Defaults to `NEVER`.
|
||||
# icon:dot-circle[]
|
||||
active = "ALWAYS"
|
||||
|
||||
# Name of the executable launcher.
|
||||
# If left undefined, will use ${assembler.name}.
|
||||
# icon:dot-circle[]
|
||||
executable = "app"
|
||||
|
||||
# Directory with file templates used to prepare the NativeImage assembler.
|
||||
# Defaults to `src/jreleaser/assemblers/${distribution.name}/nativeImage`.
|
||||
# If specified, path must exist.
|
||||
# icon:dot-circle[]
|
||||
templateDirectory = "path/to/nativeImage/templates"
|
||||
|
||||
# The GraalVM JDK to use.
|
||||
# icon:exclamation-triangle[] icon:file-alt[]
|
||||
graal = { path = "path/to/graalvm" }
|
||||
|
||||
# A list of build arguments.
|
||||
# The `-H:Name` argument will always be replaced with the
|
||||
# value of $executable.
|
||||
# icon:dot-circle[]
|
||||
args = ["--install-exit-handlers"]
|
||||
|
||||
# The executable JAR that contains the application.
|
||||
# icon:exclamation-triangle[] icon:file-alt[]
|
||||
mainJar = { path = "path/to/app.jar" }
|
||||
|
||||
# Defines a list of additional JARs as globs.
|
||||
# icon:dot-circle[]
|
||||
pass:[[[assemble.nativeImage.app.jars]]]
|
||||
# The directory to search.
|
||||
# If undefined, will use the project's basedir.
|
||||
# icon:dot-circle[] icon:file-alt[]
|
||||
directory = "some/directory"
|
||||
|
||||
# The pattern to apply for inclusion.
|
||||
# If undefined, will use `*`.
|
||||
# icon:dot-circle[]
|
||||
include = "*.jar"
|
||||
|
||||
# The pattern to apply for exclusion.
|
||||
# icon:dot-circle[]
|
||||
exclude = "secret"
|
||||
|
||||
# Recursive search.
|
||||
# Defaults to `false`.
|
||||
# icon:dot-circle[]
|
||||
recursive = true
|
||||
|
||||
# Additional properties used when evaluating templates.
|
||||
# icon:dot-circle[]
|
||||
extraProperties.foo = "bar"
|
||||
# Key will be capitalized and prefixed with `nativeImage`, i.e, `nativeImageFoo`.
|
||||
|
||||
# Maven coordinates: groupId.
|
||||
# If left undefined, will use ${project.java.groupId}.
|
||||
# icon:dot-circle[]
|
||||
java.groupId = "com.acme"
|
||||
|
||||
# Maven coordinates: artifactId.
|
||||
# If left undefined, will use ${project.java.artifactId}.
|
||||
# icon:dot-circle[]
|
||||
java.artifactId = "app"
|
||||
|
||||
# The minimum Java version required by consumers to run the application.
|
||||
# If left undefined, will use ${project.java.version}.
|
||||
# icon:dot-circle[]
|
||||
java.version = "8"
|
||||
|
||||
# The application's entry point.
|
||||
# If left undefined, will use ${project.java.mainClass}.
|
||||
# icon:dot-circle[]
|
||||
java.mainClass = "com.acme.Main"
|
||||
|
||||
# Identifies the project as being member of a multi-project build.
|
||||
# If left undefined, will use ${project.java.multiProject}.
|
||||
# icon:dot-circle[]
|
||||
java.multiProject = false
|
||||
|
||||
# Additional properties used when evaluating templates.
|
||||
# icon:dot-circle[]
|
||||
java.extraProperties.foo = "bar"
|
||||
# Key will be capitalized and prefixed with `java`, i.e, `javaFoo`.
|
||||
----
|
||||
JSON::
|
||||
+
|
||||
[source,json]
|
||||
[subs="+macros"]
|
||||
----
|
||||
{
|
||||
// icon:dot-circle[]
|
||||
"assemble": {
|
||||
// icon:dot-circle[]
|
||||
"nativeImage": {
|
||||
// Assemblers require a name.
|
||||
// icon:exclamation-triangle[]
|
||||
"app": {
|
||||
|
||||
// Enables or disables the assembler.
|
||||
// Valid values are [`NEVER`, `ALWAYS`, `RELEASE`, `SNAPSHOT`].
|
||||
// Defaults to `NEVER`.
|
||||
// icon:dot-circle[]
|
||||
"active": "ALWAYS",
|
||||
|
||||
// Name of the executable launcher.
|
||||
// If left undefined, will use ${assembler.name}.
|
||||
// icon:dot-circle[]
|
||||
"executable": "app",
|
||||
|
||||
// Directory with file templates used to prepare the NativeImage assembler.
|
||||
// Defaults to `src/jreleaser/assemblers/${distribution.name}/nativeImage`.
|
||||
// If specified, path must exist.
|
||||
// icon:dot-circle[]
|
||||
"templateDirectory": "path/to/nativeImage/templates",
|
||||
|
||||
// The GraalVM JDK to use.
|
||||
// icon:exclamation-triangle[] icon:file-alt[]
|
||||
"graal": {
|
||||
"path": "path/to/graalvm"
|
||||
},
|
||||
|
||||
// A list of build arguments.
|
||||
// The `-H:Name` argument will always be replaced with the
|
||||
// value of $executable.
|
||||
// icon:dot-circle[]
|
||||
"args": [
|
||||
"--install-exit-handlers"
|
||||
],
|
||||
|
||||
// The executable JAR that contains the application.
|
||||
// icon:exclamation-triangle[] icon:file-alt[]
|
||||
"mainJar": {
|
||||
"path": "path/to/app.jar"
|
||||
},
|
||||
|
||||
// Defines a list of additional JARs as globs.
|
||||
// icon:dot-circle[]
|
||||
"jars": [
|
||||
{
|
||||
// The directory to search.
|
||||
// If undefined, will use the project's basedir.
|
||||
// icon:dot-circle[] icon:file-alt[]
|
||||
"directory": "some/directory",
|
||||
|
||||
// The pattern to apply for inclusion.
|
||||
// If undefined, will use `*`.
|
||||
// icon:dot-circle[]
|
||||
"include": "*.jar",
|
||||
|
||||
// The pattern to apply for exclusion.
|
||||
// icon:dot-circle[]
|
||||
"exclude": "secret",
|
||||
|
||||
// Recursive search.
|
||||
// Defaults to `false`.
|
||||
// icon:dot-circle[]
|
||||
"recursive": true
|
||||
}
|
||||
],
|
||||
|
||||
// Additional properties used when evaluating templates.
|
||||
// icon:dot-circle[]
|
||||
"extraProperties": {
|
||||
// Key will be capitalized and prefixed with `nativeImage`, i.e, `nativeImageFoo`.
|
||||
"foo": "bar"
|
||||
},
|
||||
|
||||
// icon:dot-circle[]
|
||||
"java": {
|
||||
// Maven coordinates: groupId.
|
||||
// If left undefined, will use ${project.java.groupId}.
|
||||
// icon:dot-circle[]
|
||||
"groupId": "com.acme",
|
||||
|
||||
// Maven coordinates: artifactId.
|
||||
// If left undefined, will use ${project.java.artifactId}.
|
||||
// icon:dot-circle[]
|
||||
"artifactId": "app",
|
||||
|
||||
// The minimum Java version required by consumers to run the application.
|
||||
// If left undefined, will use ${project.java.version}.
|
||||
// icon:dot-circle[]
|
||||
"version": "8",
|
||||
|
||||
// The application's entry point.
|
||||
// If left undefined, will use ${project.java.mainClass}.
|
||||
// icon:dot-circle[]
|
||||
"mainClass": "com.acme.Main",
|
||||
|
||||
// Identifies the project as being member of a multi-project build.
|
||||
// If left undefined, will use ${project.java.multiProject}.
|
||||
// icon:dot-circle[]
|
||||
"multiProject": false,
|
||||
|
||||
// Additional properties used when evaluating templates.
|
||||
// icon:dot-circle[]
|
||||
"extraProperties": {
|
||||
// Key will be capitalized and prefixed with `java`, i.e, `javaFoo`.
|
||||
"foo": "bar"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
----
|
||||
Maven::
|
||||
+
|
||||
[source,xml]
|
||||
[subs="+macros,verbatim"]
|
||||
----
|
||||
<jreleaser>
|
||||
<assemble>
|
||||
<!--
|
||||
icon:dot-circle[]
|
||||
-->
|
||||
<nativeImage>
|
||||
<!--
|
||||
Assemblers require a name.
|
||||
icon:exclamation-triangle[]
|
||||
-->
|
||||
<app>
|
||||
<!--
|
||||
Enables or disables the distribution.
|
||||
Valid values are [`NEVER`, `ALWAYS`, `RELEASE`, `SNAPSHOT`].
|
||||
Defaults to `ALWAYS`.
|
||||
icon:dot-circle[]
|
||||
-->
|
||||
<active>ALWAYS</active>
|
||||
|
||||
<!--
|
||||
The distribution type.
|
||||
Used to determine packager templates.
|
||||
Supported values are>[JAVA_BINARY].
|
||||
icon:exclamation-triangle[]
|
||||
-->
|
||||
<type>JAVA_BINARY</type>
|
||||
|
||||
<!--
|
||||
Name of the executable launcher.
|
||||
If left undefined, will use ${distribution.name}.
|
||||
icon:dot-circle[]
|
||||
-->
|
||||
<executable>app</executable>
|
||||
|
||||
<!--
|
||||
Directory with file templates used to prepare the NativeImage assembler.
|
||||
Defaults to `src/jreleaser/assemblers/${distribution.name}/nativeImage`.
|
||||
If specified, path must exist.
|
||||
icon:dot-circle[]
|
||||
-->
|
||||
<templateDirectory>>path/to/brew/templates</templateDirectory>
|
||||
|
||||
<!--
|
||||
The GraalVM JDK to use.
|
||||
icon:exclamation-triangle[] icon:file-alt[]
|
||||
-->
|
||||
<graal>
|
||||
<path>path/to/graalvm</path>
|
||||
</graal>
|
||||
|
||||
<!--
|
||||
The executable JAR that contains the application.
|
||||
icon:exclamation-triangle[] icon:file-alt[]
|
||||
-->
|
||||
<mainJar>
|
||||
<path>path/to/app.jar</path>
|
||||
</mainJar>
|
||||
|
||||
<!--
|
||||
A list of build arguments.
|
||||
The `-H =Name` argument will always be replaced with the
|
||||
value of $executable.
|
||||
icon:dot-circle[]
|
||||
-->
|
||||
<args>
|
||||
<arg>--install-exit-handlers</arg>
|
||||
</args>
|
||||
|
||||
<!--
|
||||
Defines a list of additional JARs as globs.
|
||||
icon:dot-circle[]
|
||||
-->
|
||||
<jars>
|
||||
<jar>
|
||||
<!--
|
||||
The directory to search.
|
||||
If undefined, will use the project's basedir.
|
||||
icon:dot-circle[] icon:file-alt[]
|
||||
-->
|
||||
<directory>some/directory</directory>
|
||||
|
||||
<!--
|
||||
The pattern to apply for inclusion.
|
||||
If undefined, will use `*`.
|
||||
icon:dot-circle[]
|
||||
-->
|
||||
<include>*.jar</include>
|
||||
|
||||
<!--
|
||||
The pattern to apply for exclusion.
|
||||
icon:dot-circle[]
|
||||
-->
|
||||
<exclude>secret</exclude>
|
||||
|
||||
<!--
|
||||
Recursive search.
|
||||
Defaults to `false`.
|
||||
icon:dot-circle[]
|
||||
-->
|
||||
<recursive>true</recursive>
|
||||
</jar>
|
||||
</jars>
|
||||
|
||||
<!--
|
||||
Additional properties used when evaluating templates.
|
||||
icon:dot-circle[]
|
||||
-->
|
||||
<extraProperties>
|
||||
<!--
|
||||
Key will be capitalized and prefixed with `nativeImage`, i.e, `nativeImageFoo`.
|
||||
-->
|
||||
<foo>bar</foo>
|
||||
</extraProperties>
|
||||
|
||||
<!--
|
||||
icon:dot-circle[]
|
||||
-->
|
||||
<java>
|
||||
<!--
|
||||
Maven coordinates>groupId.
|
||||
If left undefined, will use ${project.java.groupId}.
|
||||
icon:dot-circle[]
|
||||
-->
|
||||
<groupId>com.acme</groupId>
|
||||
|
||||
<!--
|
||||
Maven coordinates>artifactId.
|
||||
If left undefined, will use ${project.java.artifactId}.
|
||||
icon:dot-circle[]
|
||||
-->
|
||||
<artifactId>app</artifactId>
|
||||
|
||||
<!--
|
||||
The minimum Java version required by consumers to run the application.
|
||||
If left undefined, will use ${project.java.version}.
|
||||
icon:dot-circle[]
|
||||
-->
|
||||
<version>8</version>
|
||||
|
||||
<!--
|
||||
The application's entry point.
|
||||
If left undefined, will use ${project.java.mainClass}.
|
||||
icon:dot-circle[]
|
||||
-->
|
||||
<mainClass>com.acme.Main</mainClass>
|
||||
|
||||
<!--
|
||||
Identifies the project as being member of a multi-project build.
|
||||
If left undefined, will use ${project.java.multiProject}.
|
||||
icon:dot-circle[]
|
||||
-->
|
||||
<multiProject>false</multiProject>
|
||||
|
||||
<!--
|
||||
Additional properties used when evaluating templates.
|
||||
icon:dot-circle[]
|
||||
-->
|
||||
<extraProperties>
|
||||
<!--
|
||||
Key will be capitalized and prefixed with `java`, i.e, `javaFoo`.
|
||||
-->
|
||||
<foo>bar</foo>
|
||||
</extraProperties>
|
||||
</java>
|
||||
</app>
|
||||
</nativeImage>
|
||||
</assemble>
|
||||
</jreleaser>
|
||||
----
|
||||
Gradle::
|
||||
+
|
||||
[source,groovy]
|
||||
[subs="+macros"]
|
||||
----
|
||||
jreleaser {
|
||||
// icon:dot-circle[]
|
||||
assemble {
|
||||
// icon:dot-circle[]
|
||||
nativeImage {
|
||||
// Assemblers require a name.
|
||||
// icon:exclamation-triangle[]
|
||||
app {
|
||||
|
||||
// Enables or disables the assembler.
|
||||
// Valid values are [`NEVER`, `ALWAYS`, `RELEASE`, `SNAPSHOT`].
|
||||
// Defaults to `NEVER`.
|
||||
// icon:dot-circle[]
|
||||
active = 'ALWAYS'
|
||||
|
||||
// Name of the executable launcher.
|
||||
// If left undefined, will use ${assembler.name}.
|
||||
// icon:dot-circle[]
|
||||
executable = 'app'
|
||||
|
||||
// Directory with file templates used to prepare the NativeImage assembler.
|
||||
// Defaults to `src/jreleaser/assemblers/${distribution.name}/nativeImage`.
|
||||
// If specified, path must exist.
|
||||
// icon:dot-circle[]
|
||||
templateDirectory = 'path/to/nativeImage/templates'
|
||||
|
||||
// The GraalVM JDK to use.
|
||||
// icon:exclamation-triangle[] icon:file-alt[]
|
||||
graal {
|
||||
path = 'path/to/graalvm'
|
||||
}
|
||||
|
||||
// A list of build arguments.
|
||||
// The `-H =Name` argument will always be replaced with the
|
||||
// value of $executable.
|
||||
// icon:dot-circle[]
|
||||
addArg('--install-exit-handlers')
|
||||
|
||||
// The executable JAR that contains the application.
|
||||
// icon:exclamation-triangle[] icon:file-alt[]
|
||||
mainJar {
|
||||
path = 'path/to/app.jar'
|
||||
}
|
||||
|
||||
// Defines a list of additional JARs as globs.
|
||||
// icon:dot-circle[]
|
||||
jars {
|
||||
// The directory to search.
|
||||
// If undefined, will use the project's basedir.
|
||||
// icon:dot-circle[] icon:file-alt[]
|
||||
directory = 'some/directory'
|
||||
|
||||
// The pattern to apply for inclusion.
|
||||
// If undefined, will use `*`.
|
||||
// icon:dot-circle[]
|
||||
include = '*.jar'
|
||||
|
||||
// The pattern to apply for exclusion.
|
||||
// icon:dot-circle[]
|
||||
exclude = 'secret'
|
||||
|
||||
// Recursive search.
|
||||
// Defaults to `false`.
|
||||
// icon:dot-circle[]
|
||||
recursive = true
|
||||
}
|
||||
|
||||
// Additional properties used when evaluating templates.
|
||||
// Key will be capitalized and prefixed with `nativeImage`, i.e, `nativeImageFoo`.
|
||||
// icon:dot-circle[]
|
||||
extraProperties.put('foo', 'bar')
|
||||
|
||||
// icon:dot-circle[]
|
||||
java {
|
||||
// Maven coordinates = groupId.
|
||||
// If left undefined, will use ${project.java.groupId}.
|
||||
// icon:dot-circle[]
|
||||
groupI = 'com.acme'
|
||||
|
||||
// Maven coordinates = artifactId.
|
||||
// If left undefined, will use ${project.java.artifactId}.
|
||||
// icon:dot-circle[]
|
||||
artifactId = 'app'
|
||||
|
||||
// The minimum Java version required by consumers to run the application.
|
||||
// If left undefined, will use ${project.java.version}.
|
||||
// icon:dot-circle[]
|
||||
version = '8'
|
||||
|
||||
// The application's entry point.
|
||||
// If left undefined, will use ${project.java.mainClass}.
|
||||
// icon:dot-circle[]
|
||||
mainClass = 'com.acme.Main'
|
||||
|
||||
// Identifies the project as being member of a multi-project build.
|
||||
// If left undefined, will use ${project.java.multiProject}.
|
||||
// icon:dot-circle[]
|
||||
multiProject = false
|
||||
|
||||
// Additional properties used when evaluating templates.
|
||||
// Key will be capitalized and prefixed with `java`, i.e, `javaFoo`.
|
||||
// icon:dot-circle[]
|
||||
extraProperties.put('foo', 'bar')
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
----
|
||||
====
|
||||
@@ -53,7 +53,7 @@ distributions:
|
||||
foo: bar
|
||||
|
||||
# A list of artifacts.
|
||||
# At least on entry must be present
|
||||
# At least on entry must be present.
|
||||
# icon:exclamation-triangle[] icon:file-alt[]
|
||||
artifacts:
|
||||
- path: path/to/{{distributionName}}-{{projectVersion}}.zip
|
||||
@@ -88,6 +88,12 @@ distributions:
|
||||
# If left undefined, will use ${project.java.multiProject}.
|
||||
# icon:dot-circle[]
|
||||
multiProject: false
|
||||
|
||||
# Additional properties used when evaluating templates.
|
||||
# icon:dot-circle[]
|
||||
extraProperties:
|
||||
# Key will be capitalized and prefixed with `java`, i.e, `javaFoo`.
|
||||
foo: bar
|
||||
----
|
||||
TOML::
|
||||
+
|
||||
@@ -125,7 +131,7 @@ TOML::
|
||||
# Key will be capitalized and prefixed with `distribution`, i.e, `distributionFoo`.
|
||||
|
||||
# A list of artifacts.
|
||||
# At least on entry must be present
|
||||
# At least on entry must be present.
|
||||
# icon:exclamation-triangle[] icon:file-alt[]
|
||||
artifacts = [
|
||||
{ path = "path/to/{{distributionName}}-{{projectVersion}}.zip" },
|
||||
@@ -157,6 +163,11 @@ TOML::
|
||||
# If left undefined, will use ${project.java.multiProject}.
|
||||
# icon:dot-circle[]
|
||||
java.multiProject = false
|
||||
|
||||
# Additional properties used when evaluating templates.
|
||||
# icon:dot-circle[]
|
||||
java.extraProperties.foo = "bar"
|
||||
# Key will be capitalized and prefixed with `java`, i.e, `javaFoo`.
|
||||
----
|
||||
JSON::
|
||||
+
|
||||
@@ -197,12 +208,12 @@ JSON::
|
||||
// Additional properties used when evaluating templates.
|
||||
// icon:dot-circle[]
|
||||
"extraProperties": {
|
||||
// Key will be capitalized and prefixed with `$distribution`, i.e, `$distributionFoo`.
|
||||
// Key will be capitalized and prefixed with `distribution`, i.e, `distributionFoo`.
|
||||
"foo": "bar"
|
||||
},
|
||||
|
||||
// A list of artifacts.
|
||||
// At least on entry must be present
|
||||
// At least on entry must be present.
|
||||
// icon:exclamation-triangle[] icon:file-alt[]
|
||||
"artifacts": [
|
||||
{
|
||||
@@ -243,7 +254,14 @@ JSON::
|
||||
// Identifies the project as being member of a multi-project build.
|
||||
// If left undefined, will use ${project.java.multiProject}.
|
||||
// icon:dot-circle[]
|
||||
"multiProject": false
|
||||
"multiProject": false,
|
||||
|
||||
// Additional properties used when evaluating templates.
|
||||
// icon:dot-circle[]
|
||||
"extraProperties": {
|
||||
// Key will be capitalized and prefixed with `java`, i.e, `javaFoo`.
|
||||
"foo": "bar"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -303,14 +321,14 @@ Maven::
|
||||
-->
|
||||
<extraProperties>
|
||||
<!--
|
||||
Key will be capitalized and prefixed with `project`, i.e, `projectFoo`.
|
||||
Key will be capitalized and prefixed with `distribution`, i.e, `distributionFoo`.
|
||||
-->
|
||||
<foo>bar</foo>
|
||||
</extraProperties>
|
||||
|
||||
<!--
|
||||
A list of artifacts.
|
||||
At least on entry must be present
|
||||
At least on entry must be present.
|
||||
icon:exclamation-triangle[] icon:file-alt[]
|
||||
-->
|
||||
<artifacts>
|
||||
@@ -365,6 +383,17 @@ Maven::
|
||||
icon:dot-circle[]
|
||||
-->
|
||||
<multiProject>false</multiProject>
|
||||
|
||||
<!--
|
||||
Additional properties used when evaluating templates.
|
||||
icon:dot-circle[]
|
||||
-->
|
||||
<extraProperties>
|
||||
<!--
|
||||
Key will be capitalized and prefixed with `java`, i.e, `javaFoo`.
|
||||
-->
|
||||
<foo>bar</foo>
|
||||
</extraProperties>
|
||||
</java>
|
||||
</app>
|
||||
</distributions>
|
||||
@@ -404,12 +433,12 @@ jreleaser {
|
||||
tags = ['cli', 'awesome']
|
||||
|
||||
// Additional properties used when evaluating templates.
|
||||
// Key will be capitalized and prefixed with `$distribution`, i.e, `$distributionFoo`.
|
||||
// Key will be capitalized and prefixed with `distribution`, i.e, `distributionFoo`.
|
||||
// icon:dot-circle[]
|
||||
extraProperties.put('foo', 'bar')
|
||||
|
||||
// A list of artifacts.
|
||||
// At least on entry must be present
|
||||
// At least on entry must be present.
|
||||
// icon:exclamation-triangle[] icon:file-alt[]
|
||||
artifacts {
|
||||
artifact {
|
||||
@@ -451,6 +480,11 @@ jreleaser {
|
||||
// If left undefined, will use ${project.java.multiProject}.
|
||||
// icon:dot-circle[]
|
||||
multiProject = false
|
||||
|
||||
// Additional properties used when evaluating templates.
|
||||
// Key will be capitalized and prefixed with `java`, i.e, `javaFoo`.
|
||||
// icon:dot-circle[]
|
||||
extraProperties.put('foo', 'bar')
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,6 +26,11 @@ environment:
|
||||
# the environment variable it overrides.
|
||||
# icon:dot-circle[]
|
||||
variables: path/to/alternate/config.properties
|
||||
|
||||
# Additional properties used when evaluating templates.
|
||||
# icon:dot-circle[]
|
||||
properties:
|
||||
foo: bar
|
||||
----
|
||||
TOML::
|
||||
+
|
||||
@@ -41,6 +46,10 @@ TOML::
|
||||
# the environment variable it overrides.
|
||||
# icon:dot-circle[]
|
||||
variables = "path/to/alternate/config.properties"
|
||||
|
||||
# Additional properties used when evaluating templates.
|
||||
# icon:dot-circle[]
|
||||
properties.foo = "bar"
|
||||
----
|
||||
JSON::
|
||||
+
|
||||
@@ -55,7 +64,13 @@ JSON::
|
||||
// Each key must be prefixed with `JRELEASER_` and match
|
||||
// the environment variable it overrides.
|
||||
// icon:dot-circle[]
|
||||
"variables": "path/to/alternate/config.properties"
|
||||
"variables": "path/to/alternate/config.properties",
|
||||
|
||||
// Additional properties used when evaluating templates.
|
||||
// icon:dot-circle[]
|
||||
"properties": {
|
||||
"foo": "bar"
|
||||
}
|
||||
}
|
||||
}
|
||||
----
|
||||
@@ -77,6 +92,14 @@ Maven::
|
||||
icon:dot-circle[]
|
||||
-->
|
||||
<variables>path/to/alternate/config.properties</variables>
|
||||
|
||||
<!--
|
||||
Additional properties used when evaluating templates.
|
||||
icon:dot-circle[]
|
||||
-->
|
||||
<properties>
|
||||
<foo>bar</foo>
|
||||
</properties>
|
||||
</environment>
|
||||
</jreleaser>
|
||||
----
|
||||
@@ -94,11 +117,17 @@ jreleaser {
|
||||
// the environment variable it overrides.
|
||||
// icon:dot-circle[]
|
||||
variables = 'path/to/alternate/config.properties'
|
||||
|
||||
// Additional properties used when evaluating templates.
|
||||
// icon:dot-circle[]
|
||||
properties.put('foo', 'bar')
|
||||
}
|
||||
}
|
||||
----
|
||||
====
|
||||
|
||||
The following key/values may be defined in the properties file or as environment variables:
|
||||
|
||||
== Project
|
||||
|
||||
[%header, cols="<1,<1", width="100%"]
|
||||
|
||||
@@ -29,14 +29,17 @@ files:
|
||||
# The directory to search.
|
||||
# If undefined, will use the project's basedir.
|
||||
# icon:dot-circle[] icon:file-alt[]
|
||||
- directory: some/directory
|
||||
- directory: some/directory\
|
||||
|
||||
# The pattern to apply for inclusion.
|
||||
# If undefined, will use `*`.
|
||||
# icon:dot-circle[]
|
||||
include: '*.txt'
|
||||
|
||||
# The pattern to apply for exclusion.
|
||||
# icon:dot-circle[]
|
||||
exclude: 'secret'
|
||||
|
||||
# Recursive search.
|
||||
# Defaults to `false`.
|
||||
# icon:dot-circle[]
|
||||
@@ -66,13 +69,16 @@ TOML::
|
||||
# If undefined, will use the project's basedir.
|
||||
# icon:dot-circle[] icon:file-alt[]
|
||||
directory = "some/directory"
|
||||
|
||||
# The pattern to apply for inclusion.
|
||||
# If undefined, will use `*`.
|
||||
# icon:dot-circle[]
|
||||
include = "*.txt"
|
||||
|
||||
# The pattern to apply for exclusion.
|
||||
# icon:dot-circle[]
|
||||
exclude = "secret"
|
||||
|
||||
# Recursive search.
|
||||
# Defaults to `false`.
|
||||
# icon:dot-circle[]
|
||||
|
||||
@@ -11,6 +11,68 @@ The following is a list of pre-defined template names:
|
||||
All environment variables are accessible with the `Env.` prefix, for example an environment variable named `JAVA_OPTS`
|
||||
becomes `{{Env.JAVA_OPTS}}`.
|
||||
|
||||
Additionally, every key/value from `environment.properties` becomes available
|
||||
|
||||
[tabs]
|
||||
====
|
||||
YAML::
|
||||
+
|
||||
[source,yaml]
|
||||
[subs="+macros"]
|
||||
----
|
||||
environment:
|
||||
properties:
|
||||
foo: bar
|
||||
----
|
||||
TOML::
|
||||
+
|
||||
[source,toml]
|
||||
[subs="+macros"]
|
||||
----
|
||||
[environment]
|
||||
properties.foo = "bar"
|
||||
----
|
||||
JSON::
|
||||
+
|
||||
[source,json]
|
||||
[subs="+macros"]
|
||||
----
|
||||
{
|
||||
"environment": {
|
||||
"properties": {
|
||||
"foo": "bar"
|
||||
}
|
||||
}
|
||||
}
|
||||
----
|
||||
Maven::
|
||||
+
|
||||
[source,xml]
|
||||
[subs="+macros,verbatim"]
|
||||
----
|
||||
<jreleaser>
|
||||
<environment>
|
||||
<properties>
|
||||
<foo>bar</foo>
|
||||
</properties>
|
||||
</environment>
|
||||
</jreleaser>
|
||||
----
|
||||
Gradle::
|
||||
+
|
||||
[source,groovy]
|
||||
[subs="+macros"]
|
||||
----
|
||||
jreleaser {
|
||||
environment {
|
||||
properties.put('foo', 'bar')
|
||||
}
|
||||
}
|
||||
----
|
||||
====
|
||||
|
||||
The key `foo` becomes `{{foo}}` and will be evaluated to the String `bar`.
|
||||
|
||||
== Build
|
||||
|
||||
The following names are related to the current build
|
||||
@@ -130,6 +192,86 @@ jreleaser {
|
||||
----
|
||||
====
|
||||
|
||||
Additionally, every key/value from `project.java.extraProperties` is mapped with `java` as key prefix and the capitalized
|
||||
key, such that
|
||||
|
||||
[tabs]
|
||||
====
|
||||
YAML::
|
||||
+
|
||||
[source,yaml]
|
||||
[subs="+macros"]
|
||||
----
|
||||
project:
|
||||
java:
|
||||
extraProperties:
|
||||
# Key will be capitalized and prefixed
|
||||
# with `java`, i.e, `javaFoo`.
|
||||
foo: bar
|
||||
----
|
||||
TOML::
|
||||
+
|
||||
[source,toml]
|
||||
[subs="+macros"]
|
||||
----
|
||||
[project]
|
||||
# Key will be capitalized and prefixed
|
||||
# with `java`, i.e, `javaFoo`.
|
||||
java.extraProperties.foo = "bar"
|
||||
----
|
||||
JSON::
|
||||
+
|
||||
[source,json]
|
||||
[subs="+macros"]
|
||||
----
|
||||
{
|
||||
"project": {
|
||||
"java": {
|
||||
"extraProperties": {
|
||||
// Key will be capitalized and prefixed
|
||||
// with `java`, i.e, `javaFoo`.
|
||||
"foo": "bar"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
----
|
||||
Maven::
|
||||
+
|
||||
[source,xml]
|
||||
[subs="+macros,verbatim"]
|
||||
----
|
||||
<jreleaser>
|
||||
<project>
|
||||
<java>
|
||||
<extraProperties>
|
||||
<!--
|
||||
Key will be capitalized and prefixed
|
||||
with `java`, i.e, `javaFoo`.
|
||||
-->
|
||||
<foo>bar</foo>
|
||||
</extraProperties>
|
||||
</java>
|
||||
</project>
|
||||
</jreleaser>
|
||||
----
|
||||
Gradle::
|
||||
+
|
||||
[source,groovy]
|
||||
[subs="+macros"]
|
||||
----
|
||||
jreleaser {
|
||||
project {
|
||||
java {
|
||||
// Key will be capitalized and prefixed
|
||||
// with `java`, i.e, `javaFoo`.
|
||||
extraProperties.put('foo', 'bar')
|
||||
}
|
||||
}
|
||||
}
|
||||
----
|
||||
====
|
||||
|
||||
== Release
|
||||
|
||||
The following names are related to xref:configuration:release/index.adoc[]
|
||||
@@ -256,6 +398,93 @@ jreleaser {
|
||||
----
|
||||
====
|
||||
|
||||
Additionally, every key/value from `distribution.<name>.java.extraProperties` is mapped with `java` as key prefix
|
||||
and the capitalized key, such that
|
||||
|
||||
[tabs]
|
||||
====
|
||||
YAML::
|
||||
+
|
||||
[source,yaml]
|
||||
[subs="+macros"]
|
||||
----
|
||||
distributions:
|
||||
app:
|
||||
java:
|
||||
extraProperties:
|
||||
# Key will be capitalized and prefixed
|
||||
# with `java`, i.e, `javaFoo`.
|
||||
foo: bar
|
||||
----
|
||||
TOML::
|
||||
+
|
||||
[source,toml]
|
||||
[subs="+macros"]
|
||||
----
|
||||
[distributions.app]
|
||||
# Key will be capitalized and prefixed
|
||||
# with `java`, i.e, `javaFoo`.
|
||||
java.extraProperties.foo = "bar"
|
||||
----
|
||||
JSON::
|
||||
+
|
||||
[source,json]
|
||||
[subs="+macros"]
|
||||
----
|
||||
{
|
||||
"distributions": {
|
||||
"app": {
|
||||
"java": {
|
||||
"extraProperties": {
|
||||
// Key will be capitalized and prefixed
|
||||
// with `java`, i.e, `javaFoo`.
|
||||
"foo": "bar"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
----
|
||||
Maven::
|
||||
+
|
||||
[source,xml]
|
||||
[subs="+macros,verbatim"]
|
||||
----
|
||||
<jreleaser>
|
||||
<distributions>
|
||||
<app>
|
||||
<java>
|
||||
<extraProperties>
|
||||
<!--
|
||||
Key will be capitalized and prefixed
|
||||
with `java`, i.e, `javaFoo`.
|
||||
-->
|
||||
<foo>bar</foo>
|
||||
</extraProperties>
|
||||
</java>
|
||||
</app>
|
||||
</distributions>
|
||||
</jreleaser>
|
||||
----
|
||||
Gradle::
|
||||
+
|
||||
[source,groovy]
|
||||
[subs="+macros"]
|
||||
----
|
||||
jreleaser {
|
||||
distributions {
|
||||
app {
|
||||
java {
|
||||
// Key will be capitalized and prefixed
|
||||
// with `java`, i.e, `javaFoo`.
|
||||
extraProperties.put('foo', 'bar')
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
----
|
||||
====
|
||||
|
||||
== Artifact
|
||||
|
||||
The following names identify an artifact without explicit `platform`
|
||||
@@ -266,16 +495,18 @@ The following names identify an artifact without explicit `platform`
|
||||
| artifactUrl | the URL required to download the artifact
|
||||
| artifactSha256 | the SHA256 checksum of the artifact's file
|
||||
| artifactFileName | the name of the artifact file
|
||||
| artifactName | the name of the artifact file without extension
|
||||
|===
|
||||
|
||||
The following names match the first artifact in a distribution
|
||||
|
||||
[%header, cols="<2,<5", width="100%"]
|
||||
|===
|
||||
| Key | Description
|
||||
| distributionUrl | the URL required to download the artifact
|
||||
| distributionSha256 | the SHA256 checksum of the artifact's file
|
||||
| distributionFileName | the name of the artifact file
|
||||
| Key | Description
|
||||
| distributionUrl | the URL required to download the artifact
|
||||
| distributionSha256 | the SHA256 checksum of the artifact's file
|
||||
| distributionArtifactFileName | the name of the artifact file
|
||||
| distributionArtifactName | the name of the artifact file without extension
|
||||
|===
|
||||
|
||||
Additional names become available when the artifact defines a `platform`
|
||||
@@ -286,6 +517,7 @@ Additional names become available when the artifact defines a `platform`
|
||||
| artifact{{CapitalizedPlatform}}Url | the URL required to download the artifact
|
||||
| artifact{{CapitalizedPlatform}}Sha256 | the SHA256 checksum of the artifact's file
|
||||
| artifact{{CapitalizedPlatform}}FileName | the name of the artifact file
|
||||
| artifact{{CapitalizedPlatform}}Name | the name of the artifact file without extension
|
||||
|===
|
||||
|
||||
Thus, for artifacts defined as
|
||||
@@ -386,16 +618,19 @@ The following names will be calculated:
|
||||
|
||||
* artifactUrl
|
||||
* artifactSha256
|
||||
* artifactFileName
|
||||
* artifactFileName: `${project.name}-${project.version}.zip`
|
||||
* artifactName: `${project.name}-${project.version}`
|
||||
* distributionUrl
|
||||
* distributionSha256
|
||||
* distributionFileName
|
||||
* distributionArtifactFileName: `${project.name}-${project.version}.zip`
|
||||
* distributionArtifactName: `${project.name}-${project.version}`
|
||||
|
||||
*Platform specific artifact*
|
||||
|
||||
* artifactOsxUrl
|
||||
* artifactOsxSha256
|
||||
* artifactOsxFileName
|
||||
* artifactOsxFileName: `${project.name}-${project.version}-mac.zip`
|
||||
* artifactOsxName: `${project.name}-${project.version}-mac`
|
||||
|
||||
== Brew
|
||||
|
||||
|
||||
@@ -28,8 +28,8 @@ packagers:
|
||||
# icon:dot-circle[]
|
||||
active: ALWAYS
|
||||
|
||||
# Directory with file templates used to prepare the Chocolatey distribution
|
||||
# Defaults to `src/distribution/${distribution.name}/chocolatey`.
|
||||
# Directory with file templates used to prepare the Chocolatey distribution.
|
||||
# Defaults to `src/jreleaser/distributions/${distribution.name}/chocolatey`.
|
||||
# If specified, path must exist.
|
||||
# icon:dot-circle[]
|
||||
templateDirectory: path/to/chocolatey/templates
|
||||
@@ -102,8 +102,8 @@ TOML::
|
||||
# icon:dot-circle[]
|
||||
active = "ALWAYS"
|
||||
|
||||
# Directory with file templates used to prepare the Chocolatey distribution
|
||||
# Defaults to `src/distribution/${distribution.name}/chocolatey`.
|
||||
# Directory with file templates used to prepare the Chocolatey distribution.
|
||||
# Defaults to `src/jreleaser/distributions/${distribution.name}/chocolatey`.
|
||||
# If specified, path must exist.
|
||||
# icon:dot-circle[]
|
||||
templateDirectory = "path/to/chocolatey/templates"
|
||||
@@ -175,8 +175,8 @@ JSON::
|
||||
// icon:dot-circle[]
|
||||
"active": "ALWAYS",
|
||||
|
||||
// Directory with file templates used to prepare the Chocolatey distribution
|
||||
// Defaults to `src/distribution/${distribution.name}/chocolatey`.
|
||||
// Directory with file templates used to prepare the Chocolatey distribution.
|
||||
// Defaults to `src/jreleaser/distributions/${distribution.name}/chocolatey`.
|
||||
// If specified, path must exist.
|
||||
// icon:dot-circle[]
|
||||
"templateDirectory": "path/to/chocolatey/templates",
|
||||
@@ -265,8 +265,8 @@ Maven::
|
||||
<active>ALWAYS</active>
|
||||
|
||||
<!--
|
||||
Directory with file templates used to prepare the Chocolatey distribution
|
||||
Defaults to `src/distribution/${distribution.name}/chocolatey`.
|
||||
Directory with file templates used to prepare the Chocolatey distribution.
|
||||
Defaults to `src/jreleaser/distributions/${distribution.name}/chocolatey`.
|
||||
If specified, path must exist.
|
||||
icon:dot-circle[]
|
||||
-->
|
||||
@@ -374,8 +374,8 @@ jreleaser {
|
||||
// icon:dot-circle[]
|
||||
active = 'ALWAYS'
|
||||
|
||||
// Directory with file templates used to prepare the Chocolatey distribution
|
||||
// Defaults to `src/distribution/${distribution.name}/chocolatey`.
|
||||
// Directory with file templates used to prepare the Chocolatey distribution.
|
||||
// Defaults to `src/jreleaser/distributions/${distribution.name}/chocolatey`.
|
||||
// If specified, path must exist.
|
||||
// icon:dot-circle[]
|
||||
templateDirectory = 'path/to/chocolatey/templates'
|
||||
|
||||
@@ -28,8 +28,8 @@ packagers:
|
||||
# icon:dot-circle[]
|
||||
active: ALWAYS
|
||||
|
||||
# Directory with file templates used to prepare the Docker distribution
|
||||
# Defaults to `src/distribution/${distribution.name}/docker`.
|
||||
# Directory with file templates used to prepare the Docker distribution.
|
||||
# Defaults to `src/jreleaser/distributions/${distribution.name}/docker`.
|
||||
# If specified, path must exist.
|
||||
# icon:dot-circle[]
|
||||
templateDirectory: path/to/docker/templates
|
||||
@@ -46,11 +46,22 @@ packagers:
|
||||
- "{{repoOwner}}/{{distributionName}}:{{tagName}}"
|
||||
- "duke/app:latest"
|
||||
|
||||
# A list of build arguments
|
||||
# A list of build arguments.
|
||||
# icon:dot-circle[] icon:file-alt[]
|
||||
buildArgs:
|
||||
- "--pull"
|
||||
|
||||
# Dockerfile commands to run before the assembly.
|
||||
# icon:dot-circle[] icon:file-alt[]
|
||||
preCommands:
|
||||
- "RUN apt-get update -y"
|
||||
- "RUN apt-get install unzip"
|
||||
|
||||
# Dockerfile commands to run after the assembly, before ENTRYPOINT.
|
||||
# icon:dot-circle[] icon:file-alt[]
|
||||
postCommands:
|
||||
- "VOLUME /workspace"
|
||||
|
||||
# A map of Docker labels.
|
||||
# icon:dot-circle[]
|
||||
labels:
|
||||
@@ -106,8 +117,8 @@ TOML::
|
||||
# icon:dot-circle[]
|
||||
active = "ALWAYS"
|
||||
|
||||
# Directory with file templates used to prepare the Docker distribution
|
||||
# Defaults to `src/distribution/${distribution.name}/docker`.
|
||||
# Directory with file templates used to prepare the Docker distribution.
|
||||
# Defaults to `src/jreleaser/distributions/${distribution.name}/docker`.
|
||||
# If specified, path must exist.
|
||||
# icon:dot-circle[]
|
||||
templateDirectory = "path/to/docker/templates"
|
||||
@@ -124,10 +135,20 @@ TOML::
|
||||
"{{repoOwner}}/{{distributionName}}:{{tagName}}",
|
||||
"duke/app:latest"]
|
||||
|
||||
# A list of build arguments
|
||||
# A list of build arguments.
|
||||
# icon:dot-circle[] icon:file-alt[]
|
||||
buildArgs = ["--pull"]
|
||||
|
||||
# Dockerfile commands to run before the assembly.
|
||||
# icon:dot-circle[] icon:file-alt[]
|
||||
preCommands = [
|
||||
"RUN apt-get update -y",
|
||||
"RUN apt-get install unzip"]
|
||||
|
||||
# Dockerfile commands to run after the assembly, before ENTRYPOINT.
|
||||
# icon:dot-circle[] icon:file-alt[]
|
||||
postCommands = ["VOLUME /workspace"]
|
||||
|
||||
# A map of Docker labels.
|
||||
# icon:dot-circle[]
|
||||
labels.foo = "bar"
|
||||
@@ -183,8 +204,8 @@ JSON::
|
||||
// icon:dot-circle[]
|
||||
"active": "ALWAYS",
|
||||
|
||||
// Directory with file templates used to prepare the Docker distribution
|
||||
// Defaults to `src/distribution/${distribution.name}/docker`.
|
||||
// Directory with file templates used to prepare the Docker distribution.
|
||||
// Defaults to `src/jreleaser/distributions/${distribution.name}/docker`.
|
||||
// If specified, path must exist.
|
||||
// icon:dot-circle[]
|
||||
"templateDirectory": "path/to/docker/templates",
|
||||
@@ -202,12 +223,25 @@ JSON::
|
||||
"duke/app:latest"
|
||||
],
|
||||
|
||||
// A list of build arguments
|
||||
// A list of build arguments.
|
||||
// icon:dot-circle[] icon:file-alt[]
|
||||
"buildArgs": [
|
||||
"--pull"
|
||||
],
|
||||
|
||||
// Dockerfile commands to run before the assembly.
|
||||
// icon:dot-circle[] icon:file-alt[]
|
||||
"preCommands": [
|
||||
"RUN apt-get update -y",
|
||||
"RUN apt-get install unzip"
|
||||
],
|
||||
|
||||
// Dockerfile commands to run after the assembly, before ENTRYPOINT.
|
||||
// icon:dot-circle[] icon:file-alt[]
|
||||
"postCommands": [
|
||||
"VOLUME /workspace"
|
||||
],
|
||||
|
||||
// A map of Docker labels.
|
||||
// icon:dot-circle[]
|
||||
"labels": {
|
||||
@@ -281,8 +315,8 @@ Maven::
|
||||
<active>ALWAYS</active>
|
||||
|
||||
<!--
|
||||
Directory with file templates used to prepare the Docker distribution
|
||||
Defaults to `src/distribution/${distribution.name}/docker`.
|
||||
Directory with file templates used to prepare the Docker distribution.
|
||||
Defaults to `src/jreleaser/distributions/${distribution.name}/docker`.
|
||||
If specified, path must exist.
|
||||
icon:dot-circle[]
|
||||
-->
|
||||
@@ -306,13 +340,30 @@ Maven::
|
||||
</imageNames>
|
||||
|
||||
<!--
|
||||
A list of build arguments
|
||||
A list of build arguments.
|
||||
icon:dot-circle[] icon:file-alt[]
|
||||
-->
|
||||
<buildArgs>
|
||||
<buildArg>--pull</buildArg>
|
||||
</buildArgs>
|
||||
|
||||
<!--
|
||||
Dockerfile commands to run before the assembly.
|
||||
icon:dot-circle[] icon:file-alt[]
|
||||
-->
|
||||
<preCommands>
|
||||
<preCommand>RUN apt-get update -y</preCommand>
|
||||
<preCommand>RUN apt-get install unzip</preCommand>
|
||||
</preCommands>
|
||||
|
||||
<!--
|
||||
Dockerfile commands to run after the assembly, before ENTRYPOINT.
|
||||
icon:dot-circle[] icon:file-alt[]
|
||||
-->
|
||||
<postCommands>
|
||||
<postCommand>VOLUME /workspace</postCommand>
|
||||
</postCommands>
|
||||
|
||||
<!--
|
||||
A map of Docker labels.
|
||||
icon:dot-circle[]
|
||||
@@ -396,8 +447,8 @@ jreleaser {
|
||||
// icon:dot-circle[]
|
||||
active = 'ALWAYS'
|
||||
|
||||
// Directory with file templates used to prepare the Docker distribution
|
||||
// Defaults to `src/distribution/${distribution.name}/docker`.
|
||||
// Directory with file templates used to prepare the Docker distribution.
|
||||
// Defaults to `src/jreleaser/distributions/${distribution.name}/docker`.
|
||||
// If specified, path must exist.
|
||||
// icon:dot-circle[]
|
||||
templateDirectory = 'path/to/docker/templates'
|
||||
@@ -413,10 +464,19 @@ jreleaser {
|
||||
addImageName('{{repoOwner}}/{{distributionName}}:{{tagName}}')
|
||||
addImageName('duke/app:latest')
|
||||
|
||||
// A list of build arguments
|
||||
// A list of build arguments.
|
||||
// icon:dot-circle[] icon:file-alt[]
|
||||
addBuildArg('--pull')
|
||||
|
||||
// Dockerfile commands to run before the assembly.
|
||||
// icon:dot-circle[] icon:file-alt[]
|
||||
addPreCommand('RUN apt-get update -y')
|
||||
addPreCommand('RUN apt-get install unzip')
|
||||
|
||||
// Dockerfile commands to run after the assembly, before ENTRYPOINT.
|
||||
// icon:dot-circle[] icon:file-alt[]
|
||||
addPostCommand('VOLUME /workspace')
|
||||
|
||||
// A map of Docker labels.
|
||||
// The key `openjdk@${java.version}` will be added automatically if not defined.
|
||||
// icon:dot-circle[]
|
||||
@@ -483,12 +543,11 @@ COPY assembly/app-1.2.3.zip /app-1.2.3.zip
|
||||
|
||||
RUN unzip app-1.2.3.zip && \
|
||||
rm app-1.2.3.zip && \
|
||||
mv app-* app && \
|
||||
chmod +x app/bin/app
|
||||
chmod +x app-1.2.3/bin/app
|
||||
|
||||
ENV PATH="${PATH}:/app/bin"
|
||||
ENV PATH="${PATH}:/app-1.2.3/bin"
|
||||
|
||||
ENTRYPOINT ["/app/bin/app"]
|
||||
ENTRYPOINT ["/app-1.2.3/bin/app"]
|
||||
----
|
||||
|
||||
== Default Labels
|
||||
|
||||
@@ -27,8 +27,8 @@ packagers:
|
||||
# icon:dot-circle[]
|
||||
active: ALWAYS
|
||||
|
||||
# Directory with file templates used to prepare the Homebrew distribution
|
||||
# Defaults to `src/distribution/${distribution.name}/brew`.
|
||||
# Directory with file templates used to prepare the Homebrew distribution.
|
||||
# Defaults to `src/jreleaser/distributions/${distribution.name}/brew`.
|
||||
# If specified, path must exist.
|
||||
# icon:dot-circle[]
|
||||
templateDirectory: path/to/brew/templates
|
||||
@@ -116,8 +116,8 @@ TOML::
|
||||
# icon:dot-circle[]
|
||||
active = "ALWAYS"
|
||||
|
||||
# Directory with file templates used to prepare the Homebrew distribution
|
||||
# Defaults to `src/distribution/${distribution.name}/brew`.
|
||||
# Directory with file templates used to prepare the Homebrew distribution.
|
||||
# Defaults to `src/jreleaser/distributions/${distribution.name}/brew`.
|
||||
# If specified, path must exist.
|
||||
# icon:dot-circle[]
|
||||
templateDirectory = "path/to/brew/templates"
|
||||
@@ -200,8 +200,8 @@ JSON::
|
||||
// icon:dot-circle[]
|
||||
"active": "ALWAYS",
|
||||
|
||||
// Directory with file templates used to prepare the Homebrew distribution
|
||||
// Defaults to `src/distribution/${distribution.name}/brew`.
|
||||
// Directory with file templates used to prepare the Homebrew distribution.
|
||||
// Defaults to `src/jreleaser/distributions/${distribution.name}/brew`.
|
||||
// If specified, path must exist.
|
||||
// icon:dot-circle[]
|
||||
"templateDirectory": "path/to/brew/templates",
|
||||
@@ -306,8 +306,8 @@ Maven::
|
||||
<active>ALWAYS</active>
|
||||
|
||||
<!--
|
||||
Directory with file templates used to prepare the Homebrew distribution
|
||||
Defaults to `src/distribution/${distribution.name}/brew`.
|
||||
Directory with file templates used to prepare the Homebrew distribution.
|
||||
Defaults to `src/jreleaser/distributions/${distribution.name}/brew`.
|
||||
If specified, path must exist.
|
||||
icon:dot-circle[]
|
||||
-->
|
||||
@@ -449,8 +449,8 @@ jreleaser {
|
||||
// icon:dot-circle[]
|
||||
active = 'ALWAYS'
|
||||
|
||||
// Directory with file templates used to prepare the Homebrew distribution
|
||||
// Defaults to `src/distribution/${distribution.name}/brew`.
|
||||
// Directory with file templates used to prepare the Homebrew distribution.
|
||||
// Defaults to `src/jreleaser/distributions/${distribution.name}/brew`.
|
||||
// If specified, path must exist.
|
||||
// icon:dot-circle[]
|
||||
templateDirectory = 'path/to/brew/templates'
|
||||
|
||||
@@ -27,8 +27,8 @@ packagers:
|
||||
# icon:dot-circle[]
|
||||
active: ALWAYS
|
||||
|
||||
# Directory with file templates used to prepare the Jbang distribution
|
||||
# Defaults to `src/distribution/${distribution.name}/jbang`.
|
||||
# Directory with file templates used to prepare the Jbang distribution.
|
||||
# Defaults to `src/jreleaser/distributions/${distribution.name}/jbang`.
|
||||
# If specified, path must exist.
|
||||
# icon:dot-circle[]
|
||||
templateDirectory: path/to/jbang/templates
|
||||
@@ -97,8 +97,8 @@ TOML::
|
||||
# icon:dot-circle[]
|
||||
active = "ALWAYS"
|
||||
|
||||
# Directory with file templates used to prepare the Jbang distribution
|
||||
# Defaults to `src/distribution/${distribution.name}/jbang`.
|
||||
# Directory with file templates used to prepare the Jbang distribution.
|
||||
# Defaults to `src/jreleaser/distributions/${distribution.name}/jbang`.
|
||||
# If specified, path must exist.
|
||||
# icon:dot-circle[]
|
||||
templateDirectory = "path/to/jbang/templates"
|
||||
@@ -164,8 +164,8 @@ JSON::
|
||||
// icon:dot-circle[]
|
||||
"active": "ALWAYS",
|
||||
|
||||
// Directory with file templates used to prepare the Jbang distribution
|
||||
// Defaults to `src/distribution/${distribution.name}/jbang`.
|
||||
// Directory with file templates used to prepare the Jbang distribution.
|
||||
// Defaults to `src/jreleaser/distributions/${distribution.name}/jbang`.
|
||||
// If specified, path must exist.
|
||||
// icon:dot-circle[]
|
||||
"templateDirectory": "path/to/jbang/templates",
|
||||
@@ -249,8 +249,8 @@ Maven::
|
||||
<active>ALWAYS</active>
|
||||
|
||||
<!--
|
||||
Directory with file templates used to prepare the Jbang distribution
|
||||
Defaults to `src/distribution/${distribution.name}/jbang`.
|
||||
Directory with file templates used to prepare the Jbang distribution.
|
||||
Defaults to `src/jreleaser/distributions/${distribution.name}/jbang`.
|
||||
If specified, path must exist.
|
||||
icon:dot-circle[]
|
||||
-->
|
||||
@@ -351,8 +351,8 @@ jreleaser {
|
||||
// icon:dot-circle[]
|
||||
active = 'ALWAYS'
|
||||
|
||||
// Directory with file templates used to prepare the Jbang distribution
|
||||
// Defaults to `src/distribution/${distribution.name}/jbang`.
|
||||
// Directory with file templates used to prepare the Jbang distribution.
|
||||
// Defaults to `src/jreleaser/distributions/${distribution.name}/jbang`.
|
||||
// If specified, path must exist.
|
||||
// icon:dot-circle[]
|
||||
templateDirectory = 'path/to/jbang/templates'
|
||||
|
||||
@@ -27,8 +27,8 @@ packagers:
|
||||
# icon:dot-circle[]
|
||||
active: ALWAYS
|
||||
|
||||
# Directory with file templates used to prepare the Scoop distribution
|
||||
# Defaults to `src/distribution/${distribution.name}/scoop`.
|
||||
# Directory with file templates used to prepare the Scoop distribution.
|
||||
# Defaults to `src/jreleaser/distributions/${distribution.name}/scoop`.
|
||||
# If specified, path must exist.
|
||||
# icon:dot-circle[]
|
||||
templateDirectory: path/to/scoop/templates
|
||||
@@ -101,8 +101,8 @@ TOML::
|
||||
# icon:dot-circle[]
|
||||
active = "ALWAYS"
|
||||
|
||||
# Directory with file templates used to prepare the Scoop distribution
|
||||
# Defaults to `src/distribution/${distribution.name}/scoop`.
|
||||
# Directory with file templates used to prepare the Scoop distribution.
|
||||
# Defaults to `src/jreleaser/distributions/${distribution.name}/scoop`.
|
||||
# If specified, path must exist.
|
||||
# icon:dot-circle[]
|
||||
templateDirectory = "path/to/scoop/templates"
|
||||
@@ -173,8 +173,8 @@ JSON::
|
||||
// icon:dot-circle[]
|
||||
"active": "ALWAYS",
|
||||
|
||||
// Directory with file templates used to prepare the Scoop distribution
|
||||
// Defaults to `src/distribution/${distribution.name}/scoop`.
|
||||
// Directory with file templates used to prepare the Scoop distribution.
|
||||
// Defaults to `src/jreleaser/distributions/${distribution.name}/scoop`.
|
||||
// If specified, path must exist.
|
||||
// icon:dot-circle[]
|
||||
"templateDirectory": "path/to/scoop/templates",
|
||||
@@ -263,8 +263,8 @@ Maven::
|
||||
<active>ALWAYS</active>
|
||||
|
||||
<!--
|
||||
Directory with file templates used to prepare the Scoop distribution
|
||||
Defaults to `src/distribution/${distribution.name}/scoop`.
|
||||
Directory with file templates used to prepare the Scoop distribution.
|
||||
Defaults to `src/jreleaser/distributions/${distribution.name}/scoop`.
|
||||
If specified, path must exist.
|
||||
icon:dot-circle[]
|
||||
-->
|
||||
@@ -372,8 +372,8 @@ jreleaser {
|
||||
// icon:dot-circle[]
|
||||
active = 'ALWAYS'
|
||||
|
||||
// Directory with file templates used to prepare the Scoop distribution
|
||||
// Defaults to `src/distribution/${distribution.name}/scoop`.
|
||||
// Directory with file templates used to prepare the Scoop distribution.
|
||||
// Defaults to `src/jreleaser/distributions/${distribution.name}/scoop`.
|
||||
// If specified, path must exist.
|
||||
// icon:dot-circle[]
|
||||
templateDirectory = 'path/to/scoop/templates'
|
||||
|
||||
@@ -32,8 +32,8 @@ packagers:
|
||||
# icon:dot-circle[]
|
||||
active: ALWAYS
|
||||
|
||||
# Directory with file templates used to prepare the Snap distribution
|
||||
# Defaults to `src/distribution/${distribution.name}/snap`.
|
||||
# Directory with file templates used to prepare the Snap distribution.
|
||||
# Defaults to `src/jreleaser/distributions/${distribution.name}/snap`.
|
||||
# If specified, path must exist.
|
||||
# icon:dot-circle[]
|
||||
templateDirectory: path/to/snap/templates
|
||||
@@ -175,8 +175,8 @@ TOML::
|
||||
# icon:dot-circle[]
|
||||
active = "ALWAYS"
|
||||
|
||||
# Directory with file templates used to prepare the Snap distribution
|
||||
# Defaults to `src/distribution/${distribution.name}/snap`.
|
||||
# Directory with file templates used to prepare the Snap distribution.
|
||||
# Defaults to `src/jreleaser/distributions/${distribution.name}/snap`.
|
||||
# If specified, path must exist.
|
||||
# icon:dot-circle[]
|
||||
templateDirectory = "path/to/snap/templates"
|
||||
@@ -310,8 +310,8 @@ JSON::
|
||||
// icon:dot-circle[]
|
||||
"active": "ALWAYS",
|
||||
|
||||
// Directory with file templates used to prepare the Snap distribution
|
||||
// Defaults to `src/distribution/${distribution.name}/snap`.
|
||||
// Directory with file templates used to prepare the Snap distribution.
|
||||
// Defaults to `src/jreleaser/distributions/${distribution.name}/snap`.
|
||||
// If specified, path must exist.
|
||||
// icon:dot-circle[]
|
||||
"templateDirectory": "path/to/snap/templates",
|
||||
@@ -481,8 +481,8 @@ Maven::
|
||||
<active>ALWAYS</active>
|
||||
|
||||
<!--
|
||||
Directory with file templates used to prepare the Snap distribution
|
||||
Defaults to `src/distribution/${distribution.name}/snap`.
|
||||
Directory with file templates used to prepare the Snap distribution.
|
||||
Defaults to `src/jreleaser/distributions/${distribution.name}/snap`.
|
||||
If specified, path must exist.
|
||||
icon:dot-circle[]
|
||||
-->
|
||||
@@ -687,8 +687,8 @@ jreleaser {
|
||||
// icon:dot-circle[]
|
||||
active = 'ALWAYS'
|
||||
|
||||
// Directory with file templates used to prepare the Snap distribution
|
||||
// Defaults to `src/distribution/${distribution.name}/snap`.
|
||||
// Directory with file templates used to prepare the Snap distribution.
|
||||
// Defaults to `src/jreleaser/distributions/${distribution.name}/snap`.
|
||||
// If specified, path must exist.
|
||||
// icon:dot-circle[]
|
||||
templateDirectory = 'path/to/snap/templates'
|
||||
|
||||
@@ -92,6 +92,12 @@ project:
|
||||
# Defaults to `false`.
|
||||
# icon:dot-circle[]
|
||||
multiProject: false
|
||||
|
||||
# Additional properties used when evaluating templates.
|
||||
# icon:dot-circle[]
|
||||
extraProperties:
|
||||
# Key will be capitalized and prefixed with `java`, i.e, `javaFoo`.
|
||||
foo: bar
|
||||
----
|
||||
TOML::
|
||||
+
|
||||
@@ -174,7 +180,12 @@ TOML::
|
||||
# Identifies the project as being member of a multi-project build.
|
||||
# Defaults to `false`.
|
||||
# icon:dot-circle[]
|
||||
java.multiProject: false
|
||||
java.multiProject = false
|
||||
|
||||
# Additional properties used when evaluating templates.
|
||||
# icon:dot-circle[]
|
||||
java.extraProperties.foo = "bar"
|
||||
# Key will be capitalized and prefixed with `java`, i.e, `javaFoo`.
|
||||
----
|
||||
JSON::
|
||||
+
|
||||
@@ -263,7 +274,14 @@ JSON::
|
||||
// Identifies the project as being member of a multi-project build.
|
||||
// Defaults to `false`.
|
||||
// icon:dot-circle[]
|
||||
"multiProject": false
|
||||
"multiProject": false,
|
||||
|
||||
// Additional properties used when evaluating templates.
|
||||
// icon:dot-circle[]
|
||||
"extraProperties": {
|
||||
// Key will be capitalized and prefixed with `java`, i.e, `javaFoo`.
|
||||
"foo": "bar"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -407,6 +425,17 @@ Maven::
|
||||
icon:dot-circle[]
|
||||
-->
|
||||
<multiProject>false</multiProject>
|
||||
|
||||
<!--
|
||||
Additional properties used when evaluating templates.
|
||||
icon:dot-circle[]
|
||||
-->
|
||||
<extraProperties>
|
||||
<!--
|
||||
Key will be capitalized and prefixed with `java`, i.e, `javaFoo`.
|
||||
-->
|
||||
<foo>bar</foo>
|
||||
</extraProperties>
|
||||
</java>
|
||||
</project>
|
||||
</jreleaser>
|
||||
@@ -498,6 +527,11 @@ jreleaser {
|
||||
// If undefined, will be determine based on the Gradle setup.
|
||||
// icon:dot-circle[]
|
||||
multiProject = false
|
||||
|
||||
// Additional properties used when evaluating templates.
|
||||
// Key will be capitalized and prefixed with `java`, i.e, `javaFoo`.
|
||||
// icon:dot-circle[]
|
||||
extraProperties.put('foo', 'bar')
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
.Examples
|
||||
* xref:simple-release.adoc[]
|
||||
* xref:auto-config-release.adoc[]
|
||||
* xref:cross-platform-jlink.adoc[]
|
||||
|
||||
@@ -5,7 +5,7 @@ pass:[https://github.com/duke/app.git]
|
||||
|
||||
[source,sh]
|
||||
----
|
||||
$ git remote -vvs
|
||||
$ git remote -vv
|
||||
origin https://github.com/duke/app.git (fetch)
|
||||
origin https://github.com/duke/app.git (push)
|
||||
----
|
||||
|
||||
412
docs/modules/examples/pages/cross-platform-jlink.adoc
Normal file
412
docs/modules/examples/pages/cross-platform-jlink.adoc
Normal file
@@ -0,0 +1,412 @@
|
||||
= Cross Platform Jlink
|
||||
|
||||
The following configuration defines a distribution named `app` that's configured to generate 2 jlink Java runtimes,
|
||||
one for OSX, the other for Linux. The project source is kept at pass:[https://github.com/duke/app]. The zip files of
|
||||
both distributions will be uploaded to the GitHub release, and a Docker image will be generated for the Linux zip.
|
||||
|
||||
[tabs]
|
||||
====
|
||||
YAML::
|
||||
+
|
||||
[source,yaml]
|
||||
[subs="+macros"]
|
||||
----
|
||||
project:
|
||||
name: app
|
||||
version: 1.0.0
|
||||
description: Awesome App
|
||||
longDescription: Awesome App
|
||||
website: pass:[https://acme.com/app]
|
||||
authors:
|
||||
- Duke
|
||||
license: Apache-2.0
|
||||
java:
|
||||
mainClass: com.acme.Main
|
||||
groupId: com.acme
|
||||
artifactId: app
|
||||
version: 16
|
||||
|
||||
release:
|
||||
github:
|
||||
overwrite: true
|
||||
|
||||
assemble:
|
||||
jlinks:
|
||||
app:
|
||||
active: always
|
||||
mainJar:
|
||||
path: 'target/{{distributionName}}-{{projectVersion}}.jar'
|
||||
jdk:
|
||||
path: /home/jdks/16.0.0-zulu-osx
|
||||
platform: osx
|
||||
targetJdks:
|
||||
- path: /home/jdks/16.0.0-zulu-osx
|
||||
platform: osx
|
||||
- path: /home/jdks/16.0.0-zulu-linux_x64
|
||||
platform: linux
|
||||
|
||||
packagers:
|
||||
docker:
|
||||
active: always
|
||||
baseImage: ubuntu:latest
|
||||
preCommands:
|
||||
- 'RUN apt-get update -y'
|
||||
- 'RUN apt-get install unzip'
|
||||
registries:
|
||||
- serverName: DEFAULT
|
||||
----
|
||||
TOML::
|
||||
+
|
||||
[source,toml]
|
||||
[subs="+macros"]
|
||||
----
|
||||
[project]
|
||||
name = "app"
|
||||
version = "1.0.0"
|
||||
description = "Awesome App"
|
||||
longDescription = "Awesome App"
|
||||
website = "pass:[https://acme.com/app]"
|
||||
authors = ["Duke"]
|
||||
license = "Apache-2.0"
|
||||
java.mainClass = "com.acme.Main"
|
||||
java.groupId = "com.acme"
|
||||
java.artifactId = "app"
|
||||
java.version = "16"
|
||||
|
||||
[release.github]
|
||||
overwrite = true
|
||||
|
||||
[assemble.jlinks.app]
|
||||
active = "ALWAYS"
|
||||
mainJar = { path = "target/{{distributionName}}-{{projectVersion}}.jar" }
|
||||
jdk = { path = "/home/jdks/16.0.0-zulu-osx", platform = "osx" }
|
||||
pass:[[[assemble.jlinks.app.targetJdks]]]
|
||||
path = "/home/jdks/16.0.0-zulu-osx"
|
||||
platform = "osx"
|
||||
pass:[[[assemble.jlinks.app.targetJdks]]]
|
||||
path = "/home/jdks/16.0.0-zulu-linux_x64"
|
||||
platform = "linux"
|
||||
|
||||
[packagers.docker]
|
||||
active = "ALWAYS"
|
||||
baseImage = "ubuntu:latest"
|
||||
preCommands = [
|
||||
"RUN apt-get update -y",
|
||||
"RUN apt-get install unzip"]
|
||||
pass:[[[packagers.docker.registries]]]
|
||||
serverName = "DEFAULT"
|
||||
----
|
||||
JSON::
|
||||
+
|
||||
[source,json]
|
||||
[subs="+macros"]
|
||||
----
|
||||
{
|
||||
"project": {
|
||||
"name": "app",
|
||||
"description": "Awesome App",
|
||||
"longDescription": "Awesome App",
|
||||
"website": "pass:[https://acme.com/app]",
|
||||
"authors": ["Duke"],
|
||||
"license": "Apache-2.0",
|
||||
"java": {
|
||||
"mainClass": "com.acme.Main",
|
||||
"groupId": "com.acme",
|
||||
"artifactId": "app",
|
||||
"version": "16"
|
||||
}
|
||||
},
|
||||
|
||||
"release": {
|
||||
"github": {
|
||||
"overwrite": true
|
||||
}
|
||||
},
|
||||
|
||||
"assemble": {
|
||||
"jlinks": {
|
||||
"app": {
|
||||
"active": "ALWAYS",
|
||||
"mainJar": {
|
||||
"path": "target/{{distributionName}}-{{projectVersion}}.jar"
|
||||
},
|
||||
"jdk": {
|
||||
"path": "/home/jdks/16.0.0-zulu-osx",
|
||||
"platform": "osx"
|
||||
},
|
||||
"targetJdks": [
|
||||
{
|
||||
"path": "/home/jdks/16.0.0-zulu-osx",
|
||||
"platform": "osx"
|
||||
},
|
||||
{
|
||||
"path": "/home/jdks/16.0.0-zulu-linux",
|
||||
"platform": "linux"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
"packagers": {
|
||||
"docker": {
|
||||
"active": "ALWAYS",
|
||||
"baseImage": "ubuntu:latest",
|
||||
"preCommands": [
|
||||
"RUN apt-get update -y",
|
||||
"RUN apt-get install unzip"],
|
||||
"registries": {
|
||||
"DEFAULT": { }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
----
|
||||
Maven::
|
||||
+
|
||||
[source,xml]
|
||||
[subs="+macros,verbatim,attributes"]
|
||||
----
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>com.acme</groupId>
|
||||
<artifactId>app</artifactId>
|
||||
<version>1.0.0</version>
|
||||
|
||||
<name>app</name>
|
||||
<description>Sample app</description>
|
||||
<url>https://acme.com/app</url>
|
||||
<inceptionYear>2020</inceptionYear>
|
||||
|
||||
<properties>
|
||||
<maven.compiler.release>16</maven.compiler.release>
|
||||
</properties>
|
||||
|
||||
<licenses>
|
||||
<license>
|
||||
<name>Apache-2.0</name>
|
||||
<url>https://spdx.org/licenses/Apache-2.0.html</url>
|
||||
<distribution>repo</distribution>
|
||||
</license>
|
||||
</licenses>
|
||||
|
||||
<developers>
|
||||
<developer>
|
||||
<id>duke</id>
|
||||
<name>Duke</name>
|
||||
<roles>
|
||||
<role>author</role>
|
||||
</roles>
|
||||
</developer>
|
||||
</developers>
|
||||
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.jreleaser</groupId>
|
||||
<artifactId>jreleaser-maven-plugin</artifactId>
|
||||
<version>{jreleaser-version}</version>
|
||||
<configuration>
|
||||
<jreleaser>
|
||||
<project>
|
||||
<java>
|
||||
<mainClass>com.acme.Main</mainClass>
|
||||
</java>
|
||||
</project>
|
||||
<release>
|
||||
<github>
|
||||
<overwrite>true</overwrite>
|
||||
</github>
|
||||
</release>
|
||||
<assemble>
|
||||
<jlinks>
|
||||
<jlink>
|
||||
<name>app</name>
|
||||
<active>ALWAYS</active>
|
||||
<mainJar>
|
||||
<path>target/{{distributionName}}-{{projectVersion}}.jar</path>
|
||||
</mainJar>
|
||||
<jdk>
|
||||
<path>/home/jdks/16.0.0-zulu-osx</path>
|
||||
<platform>osx</platform>
|
||||
</jdk>
|
||||
<targetJdks>
|
||||
<targetJdk>
|
||||
<path>/home/jdks/16.0.0-zulu-osx</path>
|
||||
<platform>osx</platform>
|
||||
</targetJdk>
|
||||
<targetJdk> {
|
||||
<path>/home/jdks/16.0.0-zulu-linux</path>
|
||||
<platform>linux</platform>
|
||||
</targetJdk>
|
||||
</targetJdks>
|
||||
</jlink>
|
||||
</jlinks>
|
||||
</assemble>
|
||||
<packagers>
|
||||
<docker>
|
||||
<active>ALWAYS</active>
|
||||
<baseImage>ubuntu:latest</baseImage>
|
||||
<preCommands>
|
||||
<preCommand>RUN apt-get update -y</preCommand>
|
||||
<preCommand>RUN apt-get install unzip</preCommand>
|
||||
</preCommands>
|
||||
<registries>
|
||||
<registry>
|
||||
<serverName>DEFAULT</serverName>
|
||||
</registry>
|
||||
</registries>
|
||||
</docker>
|
||||
</packagers>
|
||||
</jreleaser>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</project>
|
||||
----
|
||||
Gradle::
|
||||
+
|
||||
[source,groovy]
|
||||
[subs="+macros"]
|
||||
----
|
||||
plugins {
|
||||
id 'org.jreleaser'
|
||||
}
|
||||
|
||||
group = 'com.acme'
|
||||
version = '1.0.0'
|
||||
|
||||
jreleaser {
|
||||
project {
|
||||
name = 'app'
|
||||
description = 'Awesome App'
|
||||
longDescription = 'Awesome App'
|
||||
website = 'pass:[https://acme.com/app]'
|
||||
authors = ['Duke']
|
||||
license = 'Apache-2.0'
|
||||
java {
|
||||
mainClass = 'com.acme.Main'
|
||||
artifactId = 'app'
|
||||
version = '16'
|
||||
}
|
||||
}
|
||||
|
||||
release {
|
||||
github {
|
||||
overwrite = true
|
||||
}
|
||||
}
|
||||
|
||||
assemble {
|
||||
jlinks {
|
||||
app {
|
||||
active = 'ALWAYS'
|
||||
mainJar {
|
||||
path = 'target/{{distributionName}}-{{projectVersion}}.jar'
|
||||
}
|
||||
jdk {
|
||||
path = '/home/jdks/16.0.0-zulu-osx'
|
||||
platform = 'osx'
|
||||
}
|
||||
targetJdk {
|
||||
path = '/home/jdks/16.0.0-zulu-osx'
|
||||
platform = 'osx'
|
||||
}
|
||||
targetJdk {
|
||||
path = '/home/jdks/16.0.0-zulu-linux'
|
||||
platform = 'linux'
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
packagers {
|
||||
docker {
|
||||
active = 'ALWAYS'
|
||||
baseImage = 'ubuntu:latest'
|
||||
preCommands = [
|
||||
'RUN apt-get update -y',
|
||||
'RUN apt-get install unzip']
|
||||
registries {
|
||||
DEFAULT { }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
----
|
||||
====
|
||||
|
||||
Assembling the jlink Java Runtimes.
|
||||
|
||||
[source,sh]
|
||||
[subs="attributes"]
|
||||
----
|
||||
$ jreleaser assemble
|
||||
[INFO] JReleaser {jreleaser-version}
|
||||
[INFO] Configuring with jreleaser.yml
|
||||
[INFO] - basedir set to /Users/duke/tmp/app
|
||||
[INFO] Reading configuration
|
||||
[INFO] Loading properties from /Users/duke/.jreleaser/config.properties
|
||||
[INFO] Validating configuration
|
||||
[INFO] Project version set to 1.0.0
|
||||
[INFO] Release is not snapshot
|
||||
[INFO] Timestamp is 2021-04-16T23:41:20.220912+02:00
|
||||
[INFO] HEAD is at 0357971
|
||||
[INFO] dryrun set to false
|
||||
[INFO] Assembling all distributions
|
||||
[INFO] [jlink] assembling app distribution
|
||||
[INFO] [jlink] - com.acme.app-1.0.0-osx
|
||||
[INFO] [jlink] - com.acme.app-1.0.0-linux
|
||||
[INFO] JReleaser succeeded after 8.900s
|
||||
[INFO] Writing output properties to out/jreleaser/output.properties
|
||||
----
|
||||
|
||||
Releasing all distributions.
|
||||
|
||||
[source,sh]
|
||||
[subs="attributes"]
|
||||
----
|
||||
$ jreleaser full-release
|
||||
|
||||
[INFO] JReleaser {jreleaser-version}
|
||||
[INFO] Configuring with jreleaser.yml
|
||||
[INFO] - basedir set to /Users/duke/tmp/app
|
||||
[INFO] Reading configuration
|
||||
[INFO] Loading properties from /Users/duke/.jreleaser/config.properties
|
||||
[INFO] Validating configuration
|
||||
[INFO] Project version set to 1.0.0
|
||||
[INFO] Release is not snapshot
|
||||
[INFO] Timestamp is 2021-04-16T23:41:39.744177+02:00
|
||||
[INFO] HEAD is at 0357971
|
||||
[INFO] dryrun set to false
|
||||
[INFO] Generating changelog: out/jreleaser/release/CHANGELOG.md
|
||||
[INFO] Calculating checksums
|
||||
[INFO] [checksum] out/jreleaser/app/assemble/jlink/com.acme.app-1.0.0-osx.zip
|
||||
[INFO] [checksum] out/jreleaser/app/assemble/jlink/com.acme.app-1.0.0-linux.zip
|
||||
[INFO] Signing files
|
||||
[INFO] Signing is not enabled. Skipping
|
||||
[INFO] Releasing to https://github.com/duke/app
|
||||
[INFO] - uploading com.acme.app-1.0.0-osx.zip
|
||||
[INFO] - uploading com.acme.app-1.0.0-linux.zip
|
||||
[INFO] - uploading checksums.txt
|
||||
[INFO] Preparing distributions
|
||||
[INFO] - Preparing app distribution
|
||||
[INFO] [docker] preparing app distribution
|
||||
[INFO] Packaging distributions
|
||||
[INFO] - Packaging app distribution
|
||||
[INFO] [docker] packaging app distribution
|
||||
[INFO] [docker] - duke/app:v1.0.0
|
||||
[INFO] [docker] sha256:a8eb8c32b795b320a3b52e9c6e62e5c6845def2fee83fd30b2a82b20b7c542a9
|
||||
[INFO] Uploading distributions
|
||||
[INFO] - Uploading app distribution
|
||||
[INFO] [docker] uploading app distribution
|
||||
[INFO] [docker] - duke/app:v1.0.0
|
||||
[INFO] [docker] Removing login credentials for https://index.docker.io/v1/
|
||||
[INFO] Announcing release
|
||||
[INFO] Announcing is not enabled. Skipping.
|
||||
[INFO] JReleaser succeeded after 5.527s
|
||||
[INFO] Writing output properties to out/jreleaser/output.properties
|
||||
----
|
||||
@@ -78,7 +78,7 @@ Maven::
|
||||
<developers>
|
||||
<developer>
|
||||
<id>duke</id>
|
||||
<name>dule</name>
|
||||
<name>Duke</name>
|
||||
<roles>
|
||||
<role>author</role>
|
||||
</roles>
|
||||
|
||||
@@ -38,6 +38,25 @@ Description:: The config file.
|
||||
|
||||
---
|
||||
|
||||
*full*
|
||||
[horizontal]
|
||||
Type:: boolean
|
||||
Default value:: false
|
||||
Property:: jreleaser.full
|
||||
Required:: false
|
||||
Description:: Display full configuration.
|
||||
---
|
||||
|
||||
*assembly*
|
||||
[horizontal]
|
||||
Type:: boolean
|
||||
Default value:: false
|
||||
Property:: jreleaser.assembly
|
||||
Required:: false
|
||||
Description:: Display only assembly configuration.
|
||||
|
||||
---
|
||||
|
||||
*skip*
|
||||
[horizontal]
|
||||
Type:: boolean
|
||||
@@ -108,6 +127,48 @@ Property:: jreleaser.skip
|
||||
Required:: false
|
||||
Description:: Skips execution of this task.
|
||||
|
||||
== jreleaser-assemble
|
||||
|
||||
Upload all distributions.
|
||||
|
||||
*configFile*
|
||||
[horizontal]
|
||||
Type:: File
|
||||
Default value:: <none>
|
||||
Property:: jreleaser.config.file
|
||||
Required:: true
|
||||
Description:: The config file.
|
||||
|
||||
---
|
||||
|
||||
*distributionName*
|
||||
[horizontal]
|
||||
Type:: String
|
||||
Default value:: <none>
|
||||
Property:: jreleaser.distribution.name
|
||||
Required:: false
|
||||
Description:: The name of the distribution to be assembled.
|
||||
|
||||
---
|
||||
|
||||
*assemblerName*
|
||||
[horizontal]
|
||||
Type:: String
|
||||
Default value:: <none>
|
||||
Property:: jreleaser.assembler.name
|
||||
Required:: false
|
||||
Description:: The name of the assembler to run.
|
||||
|
||||
---
|
||||
|
||||
*skip*
|
||||
[horizontal]
|
||||
Type:: boolean
|
||||
Default value:: false
|
||||
Property:: jreleaser.skip
|
||||
Required:: false
|
||||
Description:: Skips execution of this task.
|
||||
|
||||
== jreleaser-changelog
|
||||
|
||||
Calculate the changelog.
|
||||
|
||||
@@ -13,6 +13,7 @@ Commands:
|
||||
init Create a jreleaser config file.
|
||||
config Display current configuration.
|
||||
template Generate a tool template.
|
||||
assemble Assemble distributions.
|
||||
changelog Calculate the changelog.
|
||||
checksum Calculate checksums.
|
||||
sign Sign release artifacts.
|
||||
@@ -53,8 +54,9 @@ The file will be generated at `<basedir>` if specified, otherwise at the current
|
||||
[source,bash]
|
||||
----
|
||||
$ jreleaser config -h
|
||||
Usage: jreleaser config [-dfhiqVw] [-b=<basedir>] [-c=<configFile>]
|
||||
Usage: jreleaser config [-adfhiqVw] [-b=<basedir>] [-c=<configFile>]
|
||||
Display current configuration.
|
||||
-a, --assembly Display assembly configuration.
|
||||
-b, --basedir=<basedir> Base directory.
|
||||
-c, --config-file=<configFile>
|
||||
The config file
|
||||
@@ -107,6 +109,41 @@ xref:ROOT:distributions/index.adoc[distribution types].
|
||||
|
||||
The value of `--tool-name` must match any of the available xref:configuration:packagers/index.adoc[].
|
||||
|
||||
== assemble
|
||||
|
||||
[source,bash]
|
||||
----
|
||||
$ jreleaser assemble -h
|
||||
Usage: jreleaser assemble [-dhiqVw] [-an=<assemblerName>] [-b=<basedir>]
|
||||
[-c=<configFile>] [-dn=<distributionName>]
|
||||
Assemble distributions.
|
||||
-an, --assembler-name=<assemblerName>
|
||||
The name of the assembler.
|
||||
-b, --basedir=<basedir> Base directory.
|
||||
-c, --config-file=<configFile>
|
||||
The config file
|
||||
-d, --debug Set log level to debug.
|
||||
-dn, --distribution-name=<distributionName>
|
||||
The name of the distribution.
|
||||
-h, --help Show this help message and exit.
|
||||
-i, --info Set log level to info.
|
||||
-q, --quiet Log errors only.
|
||||
-V, --version Print version information and exit.
|
||||
-w, --warn Set log level to warn.
|
||||
----
|
||||
|
||||
If `--config-file` is undefined then the command assumes the file is named `jreleaser.[yml|toml|json]` and it's
|
||||
found at the current directory.
|
||||
|
||||
If `--basedir` is undefined then the command assumes it's the same directory that contains the resolved config file.
|
||||
|
||||
The value of `--assembler-name` must match any of the available xref:configuration:assemble/index.adoc[assemblers].
|
||||
|
||||
The value of `--distribution-name` must match the name of a configured found in the
|
||||
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
|
||||
|
||||
[source,bash]
|
||||
|
||||
@@ -10,6 +10,22 @@ The following tasks are provided:
|
||||
|
||||
Display current configuration.
|
||||
|
||||
*full*
|
||||
[horizontal]
|
||||
Type:: Boolean
|
||||
Default value:: false
|
||||
Option:: full
|
||||
Required:: false
|
||||
Description:: Displays full configuration.
|
||||
|
||||
*assembly*
|
||||
[horizontal]
|
||||
Type:: Boolean
|
||||
Default value:: false
|
||||
Option:: assembly
|
||||
Required:: false
|
||||
Description:: Displays assembly configuration.
|
||||
|
||||
== jreleaserTemplate
|
||||
|
||||
Generate a tool template.
|
||||
@@ -62,6 +78,26 @@ Option:: snapshot
|
||||
Required:: false
|
||||
Description:: Lookup snapshot specific template files.
|
||||
|
||||
== jreleaserAssemble
|
||||
|
||||
Assembles distributions
|
||||
|
||||
*distributionName*
|
||||
[horizontal]
|
||||
Type:: String
|
||||
Default value:: <none>
|
||||
Option:: distribution-name
|
||||
Required:: true
|
||||
Description:: The name of the distribution.
|
||||
|
||||
*assemblerName*
|
||||
[horizontal]
|
||||
Type:: String
|
||||
Default value:: <none>
|
||||
Option:: assembler-name
|
||||
Required:: true
|
||||
Description:: The name of the assembler.
|
||||
|
||||
== jreleaserChangelog
|
||||
|
||||
Calculate the changelog.
|
||||
|
||||
@@ -13,6 +13,22 @@ The following MOJOs are provided:
|
||||
|
||||
Display current configuration.
|
||||
|
||||
*full*
|
||||
[horizontal]
|
||||
Type:: boolean
|
||||
Default value:: false
|
||||
Property:: jreleaser.config.full
|
||||
Required:: false
|
||||
Description:: Displays full configuration.
|
||||
|
||||
*assembly*
|
||||
[horizontal]
|
||||
Type:: boolean
|
||||
Default value:: false
|
||||
Property:: jreleaser.config.assembly
|
||||
Required:: false
|
||||
Description:: Displays assembly configuration.
|
||||
|
||||
*skip*
|
||||
[horizontal]
|
||||
Type:: boolean
|
||||
@@ -83,6 +99,38 @@ Property:: jreleaser.template.skip
|
||||
Required:: false
|
||||
Description:: Skips execution of this MOJO.
|
||||
|
||||
== jreleaser:assemble
|
||||
|
||||
Assemble distributions.
|
||||
|
||||
*distributionName*
|
||||
[horizontal]
|
||||
Type:: String
|
||||
Default value:: <none>
|
||||
Property:: jreleaser.distribution.name
|
||||
Required:: true
|
||||
Description:: The name of the distribution.
|
||||
|
||||
---
|
||||
|
||||
*assemblerName*
|
||||
[horizontal]
|
||||
Type:: String
|
||||
Default value:: <none>
|
||||
Property:: jreleaser.assembler.name
|
||||
Required:: true
|
||||
Description:: The name of the assembler.
|
||||
|
||||
---
|
||||
|
||||
*skip*
|
||||
[horizontal]
|
||||
Type:: boolean
|
||||
Default value:: false
|
||||
Property:: jreleaser.assemble.skip
|
||||
Required:: false
|
||||
Description:: Skips execution of this MOJO.
|
||||
|
||||
== jreleaser:changelog
|
||||
|
||||
Calculate the changelog.
|
||||
|
||||
Reference in New Issue
Block a user