Using this Gradle plugin you can create a custom runtime image of your modular application with minimal effort, even if it depends on automatic modules. The plugin also lets you create an application installer with the jpackage tool introduced in Java 14 (see fxgl-sliding-puzzle for a usage example).
💡 For non-modular applications use the Badass-Runtime plugin.
Badass-JLink exposes an extension with the name jlink
to let you configure various
aspects of its operation.
A simple example configuration is shown below:
jlink {
options = ['--strip-debug', '--compress', '2', '--no-header-files', '--no-man-pages']
launcher{
name = 'hello'
jvmArgs = ['-Dlog4j.configurationFile=./log4j2.xml']
}
}
The following projects illustrate how to use this plugin to create custom runtime images:
- badass-jlink-example - a 'Hello world' application using slf4j and logback.
- badass-jlink-example-log4j2-javafx - a 'Hello world' JavaFX application using log4j2.
- badass-jlink-example-javafx-multiproject - A 'Hello world' JavaFX application with a Gradle multi-project build.
- badass-jlink-example-richtextfx - A RichTextFX project that shows how to configure splash screens and file associations when using jpackage.
- badass-jlink-example-kotlin-javafx - a 'Hello world' JavaFX application written in Kotlin.
- badass-jlink-example-kotlin-tornadofx - a 'Hello world' application written in Kotlin using tornadofx.
- badass-jlink-spring-petclinic - creates a custom runtime image of the Spring PetClinic application.
- fxgl-sliding-puzzle - a sliding puzzle game using the FXGL library.
- copper-modular-demo - creates a custom runtime image of a COPPER 5 modular application.
- javafx-jlink-starter-gradle - A JavaFX starter project with an Azure Pipelines setup that produces binaries for Windows, Mac, and Linux.
- javafx-springboot-badass-jlink - A modular JavaFX application with Spring Boot.
- pdf-decorator - A JavaFX tool to add stamps and backgrounds to PDF documents. There's also a related article explaining how to migrate to this plugin.
This is a complex plugin. Please read the documentation before using it.
See the list of all releases if you use an older version of this plugin.