https://github.com/beryx/badass-runtime-plugin
Create a custom runtime image of your non-modular application
https://github.com/beryx/badass-runtime-plugin
gradle gradle-plugin jlink jpms runtime runtime-image
Last synced: 11 months ago
JSON representation
Create a custom runtime image of your non-modular application
- Host: GitHub
- URL: https://github.com/beryx/badass-runtime-plugin
- Owner: beryx
- License: apache-2.0
- Created: 2018-11-17T18:02:42.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2024-07-20T20:55:25.000Z (almost 2 years ago)
- Last Synced: 2025-06-16T03:14:03.987Z (12 months ago)
- Topics: gradle, gradle-plugin, jlink, jpms, runtime, runtime-image
- Language: Groovy
- Homepage: https://badass-runtime-plugin.beryx.org
- Size: 26.9 MB
- Stars: 174
- Watchers: 11
- Forks: 25
- Open Issues: 51
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[](http://makeapullrequest.com)
[](https://github.com/beryx/badass-runtime-plugin/blob/master/LICENSE)
[](https://github.com/beryx/badass-runtime-plugin/actions?query=workflow%3A%22Java+11+Gradle+CI%22)
## Badass Runtime Plugin ##
##### NOTE: Looking for co-maintainers - see [this issue](https://github.com/beryx/badass-runtime-plugin/issues/135). #####
Using this Gradle plugin you can create custom runtime images for non-modularized applications.
The plugin also lets you create an application installer with the [jpackage](https://openjdk.java.net/jeps/392) tool.
:bulb: For modularized applications use the [Badass-JLink plugin](https://badass-jlink-plugin.beryx.org/releases/latest/).
The plugin offers several tasks, such as: `runtime`, `runtimeZip`, `suggestModules`, or `jpackage`.
It also adds an extension with the name `runtime` to let you configure various aspects of its operation.
A simple example configuration is shown below:
```
runtime {
options = ['--strip-debug', '--compress', '2', '--no-header-files', '--no-man-pages']
modules = ['java.naming', 'java.xml']
}
```
The following projects illustrate how to use this plugin to create custom runtime images and/or platform-specific installers:
- [badass-runtime-example](https://github.com/beryx-gist/badass-runtime-example) - a 'Hello world' application using slf4j and logback.
- [badass-runtime-example-javafx](https://github.com/beryx-gist/badass-runtime-example-javafx) - a 'Hello world' JavaFX application.
- [badass-runtime-example-javafx-cds](https://github.com/beryx-gist/badass-runtime-example-javafx-cds) - a 'Hello world' JavaFX application with Class Data Sharing.
- [badass-runtime-example-kotlin-tornadofx](https://github.com/beryx-gist/badass-runtime-example-kotlin-tornadofx) - a 'Hello world' application written in Kotlin using [tornadofx](https://github.com/edvin/tornadofx).
- [badass-runtime-spring-petclinic](https://github.com/beryx-gist/badass-runtime-spring-petclinic) - creates a custom runtime image of the [Spring PetClinic](https://github.com/spring-projects/spring-petclinic) application.
- [badass-runtime-pacman](https://github.com/beryx-gist/badass-runtime-pacman) - creates a custom runtime image and an application installer for the Pacman game available in the [FXGLGames](https://github.com/AlmasB/FXGLGames) repository.
- [bespoke-images](https://github.com/PaulWinstone/demoModule) - creates multiple executable images, each one customized for a different client.
### Please [read the documentation](https://badass-runtime-plugin.beryx.org/releases/latest/) before using this plugin.
See the [list of all releases](https://github.com/beryx/badass-runtime-plugin/blob/gh-pages/releases.md) if you use an older version of this plugin.