Project
Defines general information about the project.
Configuration
Legend:
-
required
-
optional
-
may use environment variable
-
accepts Name Templates
#
project:
# The name of the project.
# If undefined, defaults to the Git repository name.
#
name: app
# The version to be released.
#
version: 1.0.0
# The strategy used to parse the project version
# Supported values are [`SEMVER`, `CALVER:<format>`, `CHRONVER`, `JAVA_RUNTIME`, `JAVA_MODULE`, `CUSTOM`].
# Defaults to `SEMVER`.
#
versionPattern: SEMVER
#
snapshot:
# A regex to determine if the project version is snapshot
#
pattern: .*-SNAPSHOT
# The value of the snapshot tag.
# If undefined, will use `early-access`.
#
label: early-access
# Generate full changelog since last non-snapshot release.
# Default is `false`.
#
fullChangelog: true
# A short description (60 chars max).
# Only if configured distributions or announcers.
description: My awesome app
# A more thorough explanation of the project's capabilities.
# May use markdown syntax.
# If left unspecified, will use the value of `description`.
# Only if configured distributions or announcers.
longDescription: |
My Awesome app is the bees knees
# A list of author names.
# Only if configured distributions or announcers.
authors:
- Duke
# A list of tags.
#
tags:
- cli
- awesome
# List of maintainers.
# Values are typically GitHub/GitLab usernames.
#
maintainers:
- 'duke'
# The stereotype of this project.
# Supported values are [`NONE`, `CLI`, `DESKTOP`, `WEB`, `MOBILE`].
# Defaults to `NONE`.
#
stereotype: CLI
# The project's license.
# It's recommended to use a valid SPDX identifier if the project is Open Source.
# See https://spdx.org/licenses.
# Only if configured distributions or announcers.
license: Apache-2.0
# The project's inception year.
#
inceptionYear: 2021
# The project's copyright notice.
# You may set `#{project.inceptionYear}` and `#{project.authors}` instead.
#
copyright: 2021 Duke
# The project's vendor.
# Default is empty.
#
vendor: Acme inc.
#
links:
#
homepage: https://acme.com/app
#
documentation: https://acme.com/app/docs
#
license: https://spdx.org/licenses/Apache-2.0.html
# If undefined, will use the releaser's `issueTrackerUrl`.
#
bugTracker: https://vcs.acme.com/app/issues
# If undefined, will use the releaser's `repoUrl`.
#
vcsBrowser: https://vcs.acme.com/app
#
faq: https://acme.com/app/faq
#
help: https://acme.com/app/help
#
donation: https://acme.com/app/donations
#
translate: https://acme.com/app/tr
#
contact: https://acme.com/app/contact
#
contribute: https://acme.com/app/contribute
# Additional properties used when evaluating templates.
#
extraProperties:
# Key will be capitalized and prefixed with `project`, i.e, `projectFoo`.
foo: bar
# Required if there are configured distributions.
#
java:
# Maven coordinates: groupId.
# Inherited by distributions if they do not define a value for it.
#
groupId: com.acme
# Maven coordinates: artifactId.
# If undefined, will use `#{project.name}`.
# Inherited by distributions if they do not define a value for it.
#
artifactId: app
# The minimum Java version required by consumers to run the application.
#
version: 8
# Name of main module (if any).
# Define only if the application is modular.
#
mainModule: com.acme.demo
# The application's entry point.
#
mainClass: com.acme.Main
# Options to pass to the Java runtime
#
jvmOptions:
# Included in all scripts
#
universal:
- -Dprop=value
# Included in all non Windows scripts
#
unix:
- -Dprop=value
# Included in all non Windows (except OSX) scripts
#
linux:
- -Dprop=value
# Included only in OSX scripts
#
osx:
- -Dprop=value
# Included in Windows scripts
#
windows:
- -Dprop=value
# Identifies the project as being member of a multi-project build.
# Defaults to `false`.
#
multiProject: false
# Environment variables used in launch scripts.
#
environmentVariables:
# Included in all scripts
#
universal:
KEY: value
# Included in all non Windows scripts
#
unix:
KEY: value
# Included in all non Windows (except OSX) scripts
#
linux:
KEY: value
# Included only in OSX scripts
#
osx:
KEY: value
# Included in Windows scripts
#
windows:
KEY: value
# Additional properties used when evaluating templates.
#
extraProperties:
# Key will be capitalized and prefixed with `java`, i.e, `javaFoo`.
foo: bar
# A list of screenshots.
#
screenshots:
# Publicly available URL. PNG format is preferred.
#
- url: https://acme.com/app.png
# The type of image.
# Valid values are [`SOURCE`, `THUMBNAIL`].
# Defaults to `SOURCE`.
#
type: THUMBNAIL
# Marks this screenshot as the primary one.
# Only a single screenshot may be set as primary.
#
primary: true
# A description of the image.
# Should be no more than 100 characters long.
#
caption: App in action
# Image width in pixels.
# Required if type = `THUMBNAIL`.
#
width: 250
# Image height in pixels.
# Required if type = `THUMBNAIL`.
#
height: 250
# Additional properties used when evaluating templates.
#
extraProperties:
# Key will be capitalized and prefixed with `screenshot`, i.e, `screenshotFoo`.
foo: bar
# A list of icons.
#
icons:
# Publicly available URL. PNG format is preferred.
#
- url: https://acme.com/app.png
# Marks this icon as the primary one.
# Only a single icon may be set as primary.
#
primary: true
# Image width in pixels.
#
width: 250
# Image height in pixels.
#
height: 250
# Additional properties used when evaluating templates.
#
extraProperties:
# Key will be capitalized and prefixed with `icon`, i.e, `iconFoo`.
foo: bar
#
[project]
# The name of the project.
#
name = "app"
# The version to be released.
#
version = "1.0.0"
# The strategy used to parse the project version
# Supported values are [`SEMVER`, `CALVER:<format>`, `CHRONVER`, `JAVA_RUNTIME`, `JAVA_MODULE`, `CUSTOM`].
# Defaults to `SEMVER`.
#
versionPattern = "SEMVER"
# A regex to determine if the project version is snapshot
#
snapshot.pattern = ".*-SNAPSHOT"
# Generate full changelog since last non-snapshot release.
# Default is `false`.
#
snapshot.fullChangelog = true
# The value of the snapshot tag.
# If undefined, will use `early-access`.
#
snapshot.label = "early-access"
# A short description (60 chars max).
# Only if configured distributions or announcers.
description = "My awesome app"
# A more thorough explanation of the project's capabilities.
# May use markdown syntax.
# If left unspecified, will use the value of `description`.
# Only if configured distributions or announcers.
longDescription = """
My Awesome app is the bees knees
"""
# A list of author names.
# Only if configured distributions or announcers.
authors = ["Duke"]
# A list of tags.
#
tags = ["cli", "awesome"]
# List of maintainers.
# Values are typically GitHub/GitLab usernames.
#
maintainers = ["duke"]
# The stereotype of this project.
# Supported values are [`NONE`, `CLI`, `DESKTOP`, `WEB`, `MOBILE`].
# Defaults to `NONE`.
#
stereotype = "CLI"
# The project's license.
# It's recommended to use a valid SPDX identifier if the project is Open Source.
# See https://spdx.org/licenses.
# Only if configured distributions or announcers.
license = "Apache-2.0"
# The project's inception year.
#
inceptionYear = "2021"
# The project's copyright notice.
# You may set `#{project.inceptionYear}` and `#{project.authors}` instead.
#
copyright = "2021 Duke"
# The project's vendor.
# Default is empty.
#
vendor = "Acme inc."
#
links.links.homepage = "https://acme.com/app"
#
links.documentation = "https://acme.com/app/docs"
#
links.license = "https://spdx.org/licenses/Apache-2.0.html"
# If undefined, will use the releaser's `issueTrackerUrl`.
#
links.bugTracker = "https://vcs.acme.com/app/issues"
# If undefined, will use the releaser's `repoUrl`.
#
links.vcsBrowser = "https://vcs.acme.com/app"
#
links.faq = "https://acme.com/app/faq"
#
links.help = "https://acme.com/app/help"
#
links.donation = "https://acme.com/app/donations"
#
links.translate = "https://acme.com/app/tr"
#
links.contact = "https://acme.com/app/contact"
#
links.contribute = "https://acme.com/app/contribute"
# Additional properties used when evaluating templates.
#
extraProperties.foo = "bar"
# Key will be capitalized and prefixed with `project`, i.e, `projectFoo`.
# Required if there are configured distributions.
# Maven coordinates: groupId.
# Inherited by distributions if they do not define a value for it.
#
java.groupId = "com.acme"
# Maven coordinates: artifactId.
# If undefined, will use `#{project.name}`.
# Inherited by distributions if they do not define a value for it.
#
java.artifactId = "app"
# The minimum Java version required by consumers to run the application.
#
java.version = "8"
# Name of main module (if any).
# Define only if the application is modular.
#
java.mainModule = "com.acme.demo"
# The application's entry point.
#
java.mainClass = "com.acme.Main"
# Options to pass to the Java runtime
# Included in all scripts
#
java.jvmOptions.universal = ["-Dprop=value"]
# Included in all non Windows scripts
#
java.jvmOptions.unix = ["-Dprop=value"]
# Included in all non Windows (except OSX) scripts
#
java.jvmOptions.linux = ["-Dprop=value"]
# Included only in OSX scripts
#
java.jvmOptions.osx = ["-Dprop=value"]
# Included in Windows scripts
#
java.jvmOptions.windows = ["-Dprop=value"]
# Identifies the project as being member of a multi-project build.
# Defaults to `false`.
#
java.multiProject = false
# Environment variables used in launch scripts.
# Included in all scripts
#
java.environmentVariables.universal.KEY = "value"
# Included in all non Windows scripts
#
java.environmentVariables.unix.KEY = "value"
# Included in all non Windows (except OSX) scripts
#
java.environmentVariables.linux.KEY = "value"
# Included only in OSX scripts
#
java.environmentVariables.osx.KEY = "value"
# Included in Windows scripts
#
java.environmentVariables.windows.KEY = "value"
# Additional properties used when evaluating templates.
#
java.extraProperties.foo = "bar"
# Key will be capitalized and prefixed with `java`, i.e, `javaFoo`.
# A list of screenshots.
#
[[project.screenshots]]
# Publicly available URL. PNG format is preferred.
#
url = "https://acme.com/app.png"
# The type of image.
# Valid values are [`SOURCE`, `THUMBNAIL`].
# Defaults to `SOURCE`.
#
type = "THUMBNAIL"
# Marks this screenshot as the primary one.
# Only a single screenshot may be set as primary.
#
primary = true
# A description of the image.
# Should be no more than 100 characters long.
#
caption = "App in action"
# Image width in pixels.
# Required if type = `THUMBNAIL`.
#
width = 250
# Image height in pixels.
# Required if type = `THUMBNAIL`.
#
height = 250
# Additional properties used when evaluating templates.
#
extraProperties.foo = "bar"
# Key will be capitalized and prefixed with `screenshot`, i.e, `screenshotFoo`.
# A list of icons.
#
[[project.icons]]
# Publicly available URL. PNG format is preferred.
#
url = "https://acme.com/app.png"
# Marks this icon as the primary one.
# Only a single icon may be set as primary.
#
primary = true
# Image width in pixels.
#
width = 250
# Image height in pixels.
#
height = 250
# Additional properties used when evaluating templates.
#
extraProperties.foo = "bar"
# Key will be capitalized and prefixed with `icon`, i.e, `iconFoo`.
{
//
"project": {
//
"name": "app",
// The version to be released.
//
"version": "1.0.0",
// The strategy used to parse the project version
// Supported values are [`SEMVER`, `CALVER:<format>`, `CHRONVER`, `JAVA_RUNTIME`, `JAVA_MODULE`, `CUSTOM`].
// Defaults to `SEMVER`.
//
"versionPattern": "SEMVER",
//
"snapshot": {
// A regex to determine if the project version is snapshot
//
"pattern": ".*-SNAPSHOT",
// The value of the snapshot tag.
// If undefined, will use `early-access`.
//
"label": "early-access",
// Generate full changelog since last non-snapshot release.
// Default is `false`.
//
"fullChangelog": true
},
// A short description (60 chars max).
// Only if configured distributions or announcers.
"description": "My awesome app",
// A more thorough explanation of the project's capabilities.
// May use markdown syntax.
// If left unspecified, will use the value of `description`.
// Only if configured distributions or announcers.
"longDescription": "My Awesome app is the bees knees",
// A list of author names.
// Only if configured distributions or announcers.
"authors": [
"Duke"
],
// A list of tags.
//
"tags": [
"cli",
"awesome"
],
// List of maintainers.
// Values are typically GitHub/GitLab usernames.
//
"maintainers": [
"duke"
],
// The stereotype of this project.
// Supported values are [`NONE`, `CLI`, `DESKTOP`, `WEB`, `MOBILE`].
// Defaults to `NONE`.
//
"stereotype": "CLI",
// The project's license.
// It's recommended to use a valid SPDX identifier if the project is Open Source.
// See https://spdx.org/licenses.
// Only if configured distributions or announcers.
"license": "Apache-2.0",
// The project's inception year.
//
"inceptionYear": "2021",
// The project's copyright notice.
// You may set `#{project.inceptionYear}` and `#{project.authors}` instead.
//
"copyright": "2021 Duke",
// The project's vendor.
// Default is empty.
//
"vendor": "Acme inc.",
//
"links": {
//
"homepage": "https://acme.com/app",
//
"documentation": "https://acme.com/app/docs",
//
"license": "https://spdx.org/licenses/Apache-2.0.html",
// If undefined, will use the releaser's `issueTrackerUrl`.
//
"bugTracker": "https://vcs.acme.com/app/issues",
// If undefined, will use the releaser's `repoUrl`.
//
"vcsBrowser": "https://vcs.acme.com/app",
//
"faq": "https://acme.com/app/faq",
//
"help": "https://acme.com/app/help",
//
"donation": "https://acme.com/app/donations",
//
"translate": "https://acme.com/app/tr",
//
"contact": "https://acme.com/app/contact",
//
"contribute": "https://acme.com/app/contribute"
},
// Additional properties used when evaluating templates.
//
"extraProperties": {
// Key will be capitalized and prefixed with `project`, i.e, `projectFoo`.
"foo": "bar"
},
// Required if there are configured distributions.
//
"java": {
// Maven coordinates: groupId.
// Inherited by distributions if they do not define a value for it.
//
"groupId": "com.acme",
// Maven coordinates: artifactId.
// If undefined, will use `#{project.name}`.
// Inherited by distributions if they do not define a value for it.
//
"artifactId": "app",
// The minimum Java version required by consumers to run the application.
//
"version": "8",
// Name of main module (if any).
// Define only if the application is modular.
//
"mainModule": "com.acme.demo",
// The application's entry point.
//
"mainClass": "com.acme.Main",
// Options to pass to the Java runtime
//
"jvmOptions": {
// Included in all scripts
//
"universal": [
"-Dprop=value"
],
// Included in all non Windows scripts
//
"unix": [
"-Dprop=value"
],
// Included in all non Windows (except OSX) scripts
//
"linux": [
"-Dprop=value"
],
// Included only in OSX scripts
//
"osx": [
"-Dprop=value"
],
// Included in Windows scripts
//
"windows": [
"-Dprop=value"
]
},
// Identifies the project as being member of a multi-project build.
// Defaults to `false`.
//
"multiProject": false,
// Environment variables used in launch scripts.
//
"environmentVariables": {
// Included in all scripts
//
"universal": {
"KEY": "value"
},
// Included in all non Windows scripts
//
"unix": {
"KEY": "value"
},
// Included in all non Windows (except OSX) scripts
//
"linux": {
"KEY": "value"
},
// Included only in OSX scripts
//
"osx": {
"KEY": "value"
},
// Included in Windows scripts
//
"windows": {
"KEY": "value"
}
},
// Additional properties used when evaluating templates.
//
"extraProperties": {
// Key will be capitalized and prefixed with `java`, i.e, `javaFoo`.
"foo": "bar"
}
},
// A list of screenshots.
//
screenshots: [
{
// Publicly available URL. PNG format is preferred.
//
"url": "https://acme.com/app.png",
// The type of image.
// Valid values are [`SOURCE`, `THUMBNAIL`].
// Defaults to `SOURCE`.
//
"type": "THUMBNAIL",
// Marks this screenshot as the primary one.
// Only a single screenshot may be set as primary.
//
"primary": true,
// A description of the image.
// Should be no more than 100 characters long.
//
"caption": "App in action",
// Image width in pixels.
// Required if type = `THUMBNAIL`.
//
"width": 250,
// Image height in pixels.
// Required if type = `THUMBNAIL`.
//
"height": 250,
// Additional properties used when evaluating templates.
//
"extraProperties": {
// Key will be capitalized and prefixed with `screenshot`, i.e, `screenshotFoo`.
"foo": "bar"
}
}
],
// A list of icons.
//
icons: [
{
// Publicly available URL. PNG format is preferred.
//
"url": "https://acme.com/app.png",
// Marks this icon as the primary one.
// Only a single icon may be set as primary.
//
"primary": true,
// Image width in pixels.
//
"width": 250,
// Image height in pixels.
//
"height": 250,
// Additional properties used when evaluating templates.
//
"extraProperties": {
// Key will be capitalized and prefixed with `icon`, i.e, `iconFoo`.
"foo": "bar"
}
}
]
}
}
<jreleaser>
<!--
-->
<project>
<!--
-->
<name>app</name>
<!--
The version to be released.
If undefined, will use `${project.version}` from Maven.
-->
<version>1.0.0</version>
<!--
The strategy used to parse the project version
Supported values are [`SEMVER`, `CALVER:<format>`, `CHRONVER`, `JAVA_RUNTIME`, `JAVA_MODULE`, `CUSTOM`].
Defaults to `SEMVER`.
-->
<versionPattern>SEMVER</versionPattern>
<!--
-->
<snapshot>
<!--
A regex to determine if the project version is snapshot
-->
<pattern>.*-SNAPSHOT</pattern>
<!--
The value of the snapshot tag.
If undefined, will use `early-access`.
-->
<label>early-access</label>
<!--
Generate full changelog since last non-snapshot release.
Default is `false`.
-->
<fullChangelog>true</fullChangelog>
</snapshot>
<!--
A short description (60 chars max).
If undefined, will use `${project.description}` from Maven.
Only if configured distributions or announcers.
-->
<description>My awesome app</description>
<!--
A more thorough explanation of the project's capabilities.
May use markdown syntax.
If left unspecified, will use the value of `description`.
Only if configured distributions or announcers.
-->
<longDescription>
My Awesome app is the bees knees
</longDescription>
<!--
A list of author names.
If undefined, will use `${project.developers}` from Maven, looking for
matches of <role>author</role>
Only if configured distributions or announcers.
-->
<authors>
<author>Duke</author>
</authors>
<!--
A list of tags.
-->
<tags>
<tag>cli</tag>
<tag>awesome</tag>
</tags>
<!--
List of maintainers.
Values are typically GitHub/GitLab usernames.
-->
<maintainers>
<maintainer>duke</maintainer>
</maintainers>
<!--
The stereotype of this project.
Supported values are [`NONE`, `CLI`, `DESKTOP`, `WEB`, `MOBILE`].
Defaults to `NONE`.
-->
<stereotype>CLI</stereotype>
<!--
The project's license.
If undefined, will use `${project.licenses}` from Maven.
It's recommended to use a valid SPDX identifier if the project is Open Source.
See https://spdx.org/licenses.
Only if configured distributions or announcers.
-->
<license>Apache-2.0</license>
<!--
The project's inception year.
-->
<inceptionYear>2021</inceptionYear>
<!--
The project's copyright notice.
You may set `#{project.inceptionYear}` and `#{project.authors}` instead.
-->
<copyright>2021 Duke</copyright>
<!--
The project's vendor.
Default is empty.
-->
<vendor>Acme inc.</vendor>
<!--
-->
<links>
<!--
-->
<homepage>https://acme.com/app</homepage>
<!--
-->
<documentation>https://acme.com/app/docs</documentation>
<!--
-->
<license>https://spdx.org/licenses/Apache-2.0.html</license>
<!--
If undefined, will use the releaser's `issueTrackerUrl`.
-->
<bugTracker>https://vcs.acme.com/app/issues</bugTracker>
<!--
If undefined, will use the releaser's `repoUrl`.
-->
<vcsBrowser>https://vcs.acme.com/app</vcsBrowser>
<!--
-->
<faq>https://acme.com/app/faq</faq>
<!--
-->
<help>https://acme.com/app/help</help>
<!--
-->
<donation>https://acme.com/app/donations</donation>
<!--
-->
<translate>https://acme.com/app/tr</translate>
<!--
-->
<contact>https://acme.com/app/contact</contact>
<!--
-->
<contribute>https://acme.com/app/contribute</contribute>
</links>
<!--
Additional properties used when evaluating templates.
-->
<extraProperties>
<!--
Key will be capitalized and prefixed with `project`, i.e, `projectFoo`.
-->
<foo>bar</foo>
</extraProperties>
<!--
Required if there are configured distributions.
-->
<java>
<!--
Maven coordinates: groupId.
Inherited by distributions if they do not define a value for it.
If undefined, will use `${project.groupId}` from Maven.
-->
<groupId>com.acme</groupId>
<!--
Maven coordinates: artifactId.
Inherited by distributions if they do not define a value for it.
If undefined, will use `${project.artifactId}` from Maven.
-->
<artifactId>app</artifactId>
<!--
The minimum Java version required by consumers to run the application.
If undefined, will determined by reading the following Maven properties:
- maven.compiler.release
- maven.compiler.target
- maven.compiler.source
- project.compilerRelease
- System.getProperty("java.version")
-->
<version>8</version>
<!--
Name of main module (if any).
Define only if the application is modular.
-->
<mainModule>com.acme.demo</mainModule>
<!--
The application's entry point.
-->
<mainClass>com.acme.Main</mainClass>
<!--
Options to pass to the Java runtime
-->
<jvmOptions>
<!--
Included in all scripts
-->
<universal>-Dprop=value</universal>
<!--
Included in all non Windows scripts
-->
<unix>-Dprop=value</unix>
<!--
Included in all non Windows (except OSX) scripts
-->
<linux>-Dprop=value</linux>
<!--
Included only in OSX scripts
-->
<osx>-Dprop=value</osx>
<!--
Included in Windows scripts
-->
<windows>-Dprop=value</windows>
</jvmOptions>
<!--
Identifies the project as being member of a multi-project build.
Defaults to `false`.
-->
<multiProject>false</multiProject>
<!--
Environment variables used in launch scripts.
-->
<environmentVariables>
<!--
Included in all scripts
-->
<universal>
<KEY>value</KEY>
</universal>
<!--
Included in all non Windows scripts
-->
<unix>
<KEY>value</KEY>
</unix>
<!--
Included in all non Windows (except OSX) scripts
-->
<linux>
<KEY>value</KEY>
</linux>
<!--
Included only in OSX scripts
-->
<osx>
<KEY>value</KEY>
</osx>
<!--
Included in Windows scripts
-->
<windows>
<KEY>value</KEY>
</windows>
</environmentVariables>
<!--
Additional properties used when evaluating templates.
-->
<extraProperties>
<!--
Key will be capitalized and prefixed with `java`, i.e, `javaFoo`.
-->
<foo>bar</foo>
</extraProperties>
</java>
<!--
A list of screenshots.
-->
<screenshots>
<screenshot>
<!--
Publicly available URL. PNG format is preferred.
-->
<url>https://acme.com/app.png</url>
<!--
The type of image.
Valid values are [`SOURCE`, `THUMBNAIL`].
Defaults to `SOURCE`.
-->
<type>THUMBNAIL</type>
<!--
Marks this screenshot as the primary one.
Only a single screenshot may be set as primary.
-->
<primary>true</primary>
<!--
A description of the image.
Should be no more than 100 characters long.
-->
<caption>App in action</caption>
<!--
Image width in pixels.
Required if type = `THUMBNAIL`.
-->
<width>250</width>
<!--
Image height in pixels.
Required if type = `THUMBNAIL`.
-->
<height>250</height>
<!--
Additional properties used when evaluating templates.
-->
<extraProperties>
<!--
Key will be capitalized and prefixed with `screenshot`, i.e, `screenshotFoo`.
-->
<foo>bar</foo>
</extraProperties>
</screenshot>
</screenshots>
<!--
A list of icons.
-->
<icons>
<icon>
<!--
Publicly available URL. PNG format is preferred.
-->
<url>https://acme.com/app.png</url>
<!--
Marks this icon as the primary one.
Only a single icon may be set as primary.
-->
<primary>true</primary>
<!--
Image width in pixels.
-->
<width>250</width>
<!--
Image height in pixels.
-->
<height>250</height>
<!--
Additional properties used when evaluating templates.
-->
<extraProperties>
<!--
Key will be capitalized and prefixed with `icon`, i.e, `iconFoo`.
-->
<foo>bar</foo>
</extraProperties>
</icon>
</icons>
</project>
</jreleaser>
jreleaser {
//
project {
//
name = 'app'
// The version to be released.
// If undefined, will use `${project.version}` from Gradle.
//
version = '1.0.0'
// The strategy used to parse the project version
// Supported values are [`SEMVER`, `CALVER:<format>`, `CHRONVER`, `JAVA_RUNTIME`, `JAVA_MODULE`, `CUSTOM`].
// Defaults to `SEMVER`.
//
versionPattern = 'SEMVER'
//
snapshot {
// A regex to determine if the project version is snapshot
//
pattern = '.*-SNAPSHOT'
// The value of the snapshot tag.
// If undefined, will use `early-access`.
//
label = 'early-access'
// Generate full changelog since last non-snapshot release.
// Default is `false`.
//
fullChangelog = true
}
// A short description (60 chars max).
// Only if configured distributions or announcers.
description = 'My awesome app'
// A more thorough explanation of the project's capabilities.
// May use markdown syntax.
// If left unspecified, will use the value of `description`.
// Only if configured distributions or announcers.
longDescription = 'My Awesome app is the bees knees'
// A list of author names.
// Only if configured distributions or announcers.
authors = ['Duke']
// A list of tags.
//
tags = ['cli', 'awesome']
// List of maintainers.
// Values are typically GitHub/GitLab usernames.
//
maintainers = ['duke']
// The stereotype of this project.
// Supported values are [`NONE`, `CLI`, `DESKTOP`, `WEB`, `MOBILE`].
// Defaults to `NONE`.
//
stereotype = 'CLI'
// The project's license.
// It's recommended to use a valid SPDX identifier if the project is Open Source.
// See https://spdx.org/licenses.
// Only if configured distributions or announcers.
license = 'Apache-2.0'
// The project's inception year.
//
inceptionYear = '2021'
// The project's copyright notice.
// You may set `#{project.inceptionYear}` and `#{project.authors}` instead.
//
copyright = '2021 Duke'
// The project's vendor.
// Default is empty.
//
vendor = 'Acme inc.'
//
links {
//
homepage = 'https://acme.com/app'
//
documentation = 'https://acme.com/app/docs'
//
license = 'https://spdx.org/licenses/Apache-2.0.html'
// If undefined, will use the releaser's `issueTrackerUrl`.
//
bugTracker = 'https://vcs.acme.com/app/issues'
// If undefined, will use the releaser's `repoUrl`.
//
vcsBrowser = 'https://vcs.acme.com/app'
//
faq = 'https://acme.com/app/faq'
//
help = 'https://acme.com/app/help'
//
donation = 'https://acme.com/app/donations'
//
translate = 'https://acme.com/app/tr'
//
contact = 'https://acme.com/app/contact'
//
contribute = 'https://acme.com/app/contribute'
}
// Additional properties used when evaluating templates.
// Key will be capitalized and prefixed with `project`, i.e, `projectFoo`.
//
extraProperties.put('foo', 'bar')
// Required if there are configured distributions.
//
java {
// Maven coordinates: groupId.
// Inherited by distributions if they do not define a value for it.
// If undefined, will use `${project.group}` from Gradle.
//
groupId = 'com.acme'
// Maven coordinates: artifactId.
// Inherited by distributions if they do not define a value for it.
// If undefined, will use `${project.name}` from Gradle.
//
artifactId = 'app'
// The minimum Java version required by consumers to run the application.
// If undefined, will determined by reading the following Gradle properties:
// - project.targetCompatibility
// - project.compilerRelease
// - JavaVersion.current()
//
version = '8'
// Name of main module (if any).
// Define only if the application is modular.
//
mainModule = 'com.acme.demo'
// The application's entry point.
//
mainClass = 'com.acme.Main'
// Options to pass to the Java runtime
//
jvmOptions {
// Included in all scripts
//
universal('-Dprop=value')
// Included in all non Windows scripts
//
unix('-Dprop=value')
// Included in all non Windows (except OSX) scripts
//
linux('-Dprop=value')
// Included only in OSX scripts
//
osx('-Dprop=value')
// Included in Windows scripts
//
windows('-Dprop=value')
}
// Identifies the project as being member of a multi-project build.
// Defaults to `false`.
// If undefined, will be determine based on the Gradle setup.
//
multiProject = false
// Environment variables used in launch scripts.
//
environmentVariables {
// Included in all scripts
//
universal('KEY', 'value')
// Included in all non Windows scripts
//
unix('KEY', 'value')
// Included in all non Windows (except OSX) scripts
//
linux('KEY', 'value')
// Included only in OSX scripts
//
osx('KEY', 'value')
// Included in Windows scripts
//
windows('KEY', 'value')
}
// Additional properties used when evaluating templates.
// Key will be capitalized and prefixed with `java`, i.e, `javaFoo`.
//
extraProperties.put('foo', 'bar')
}
// A list of screenshots.
//
screenshot {
// Publicly available URL. PNG format is preferred.
//
url = 'https://acme.com/app.png'
// The type of image.
// Valid values are [`SOURCE`, `THUMBNAIL`].
// Defaults to `SOURCE`.
//
screenshotType = THUMBNAIL
// Marks this screenshot as the primary one.
// Only a single screenshot may be set as primary.
//
primary = true
// A description of the image.
// Should be no more than 100 characters long.
//
caption = 'App in action'
// Image width in pixels.
// Required if type = `THUMBNAIL`.
//
width = 250
// Image height in pixels.
// Required if type = `THUMBNAIL`.
//
height = 250
// Additional properties used when evaluating templates.
// Key will be capitalized and prefixed with `screenshot`, i.e, `screenshot`.
//
extraProperties.put('foo', 'bar')
}
// A list of icons.
//
icon {
// Publicly available URL. PNG format is preferred.
//
url = 'https://acme.com/app.png'
// Marks this icon as the primary one.
// Only a single icon may be set as primary.
//
primary = true
// Image width in pixels.
//
width = 250
// Image height in pixels.
//
height = 250
// Additional properties used when evaluating templates.
// Key will be capitalized and prefixed with `icon`, i.e, `icon`.
//
extraProperties.put('foo', 'bar')
}
}
}
Environment
When not explicitly set, the value of the following properties may be resolved from an environment variable or a system property as shown in the table. The system property takes precedence over the environment variable.
System Property | Environment Variable |
---|---|
name |
|
jreleaser.project.name |
JRELEASER_PROJECT_NAME |
version |
|
jreleaser.project.version |
JRELEASER_PROJECT_VERSION |
versionPattern |
|
jreleaser.project.version.pattern |
JRELEASER_PROJECT_VERSION_PATTERN |
snapshot.pattern |
|
jreleaser.project.snapshot.pattern |
JRELEASER_PROJECT_SNAPSHOT_PATTERN |
snapshot.label |
|
jreleaser.project.snapshot.label |
JRELEASER_PROJECT_SNAPSHOT_LABEL |
snapshot.fullChangelog |
|
jreleaser.project.snapshot.full.changelog |
JRELEASER_PROJECT_SNAPSHOT_FULL_CHANGELOG |
java.artifactId |
|
jreleaser.project.java.artifact.id |
JRELEASER_PROJECT_JAVA_ARTIFACT_ID |
java.groupId |
|
jreleaser.project.java.group.id |
JRELEASER_PROJECT_JAVA_GROUP_ID |
java.multiProject |
|
jreleaser.project.java.multi.project |
JRELEASER_PROJECT_JAVA_MULTI_PROJECT |
License URL
The value of this property should point out to an external URL from where the license may be read. If the given value for
the license
property is an SPDX identifier then JReleaser can calculate the value for licenseUrl
. If there’s no
match then JReleaser attempts to resolve a file named LICENSE
, LICENSE.txt
, LICENSE.md
, or LICENSE.adoc
from
the project’s repository.
A full list of SPDX identifiers may be found at https://spdx.org/licenses.
Version
It is assumed that the project’s version follows the Semantic Versioning specification, however not everyone is happy with this specification nor is able to follow it to the letter. Fortunately JReleaser does not impose a version format and lets you decide among the following options:
SEMVER
The version number complies with the Semantic Versioning specification. Examples:
-
1.2.3
-
1.2.3.TAG
-
1.2.3+BUILD
-
1.2.3.TAG+BUILD
The following relaxed patterns are also supported:
-
1.2.TAG
-
1.2+BUILD
-
1.2.TAG+BUILD
-
1.TAG
-
1+BUILD
-
1.TAG+BUILD
CALVER
The version number complies with the CalVer syntax, resulting in the following supported formats:
-
for year:
-
YYYY: [2-9][0-9]{3}
-
YY: [1-9]|[1-9][0-9]|[1-9][0-9]{2}
-
0Y: 0[1-9]|[1-9][0-9]|[1-9][0-9]{2}
-
-
for month:
-
MM: [1-9]|1[0-2]
-
0M: 0[1-9]|1[0-2]
-
-
for day:
-
DD: [1-9]|[1-2][0-9]|3[0-1]
-
0D: 0[1-9]|[1-2][0-9]|3[0-1]
-
-
for week:
-
WW: [1-9]|[1-4][0-9]|5[0-2]
-
0W: 0[1-9]|[1-4][0-9]|5[0-2]
-
-
for MINOR: 0|[1-9]\d*
-
for MICRO: 0|[1-9]\d*
-
for MODIFIER: [a-zA-Z-][0-9a-zA-Z-]*
-
Format must begin with a year token.
-
If month is present so can day, but not week.
-
If week is present then neither month nor day are allowed.
-
minor must be present before micro.
-
modifier always goes at the end.
-
separator chars may be any of
.
,_
,-
.
The MODIFIER token may be set as optional.
Pattern | Version |
---|---|
CALVER:YYYY |
2021 |
CALVER:YY |
21 |
CALVER:0Y |
06 |
CALVER:YYYY.MM |
2021.1 |
CALVER:YYYY.0M |
2021.01 |
CALVER:YYYY.MM.DD |
2021.1.1 |
CALVER:YYYY.MM.0D |
2021.1.01 |
CALVER:YYYY.WW |
2021.1 |
CALVER:YYYY.0W |
2021.01 |
CALVER:YYYY.MINOR.MICRO |
2021.1.2 |
CALVER:YYYY.MM.DD_MICRO |
2021.1.2_3 |
CALVER:YYYY.MODIFIER |
2021.ALPHA1 |
CALVER:YYYY.MINOR.MICRO.MODIFIER |
2021.1.2.ALPHA1 |
CALVER:YYYY.MODIFIER |
2021.FOO-BAR |
CALVER:YYYY[.MODIFIER] |
2021.FOO-BAR, also matches 2021 |
CHRONVER
The version number complies with the ChronVer syntax, resulting in the following supported formats:
-
2022.01.02
-
2022.01.02.1
-
2022.01.02.1-TAG
-
2022.01.02.1-TAG.2
The following restrictions apply:
-
The initial changeset identifier cannot be
0
, this means2022.01.02.0
is invalid. -
There can only be one tag in the changeset modifier and an optional second number.
JAVA_RUNTIME
The version number complies with the Java Runtime Version syntax, resulting in the following supported formats:
-
1.2.3
-
1.2.3-PRE
-
1.2.3+123
-
1.2.3-PRE-OPT
-
1.2.3+123-OPT
-
1.2.3-PRE+456
-
1.2.3-PRE+456-OPT
-
1.2.3+-OPT
JAVA_MODULE
The version number complies with the Java Module Version syntax, resulting in the following supported formats:
-
1.2.3
-
1.2.3-PRE
-
1.2.3+123
-
1.2.3-PRE+456
CUSTOM
Use your own format, no pattern is enforced nor validated. Be aware that changelog generation may not be accurate as tags will be compared using their natural literal comparator, thus comparing "1" vs. "11" vs. "1.0" may not yield the expected result as these strings will not be parsed into numeric tokens.