Compatibility Note
- Gradle: Gradle version 8.14.4 or newer is required.
- Java: supported Java versions are 17 to 26.
- The long deprecated
mergedModuleJarVersionconfiguration option was removed.
If you must stay on older Gradle versions:
- Use plugin 3.2.1 for Gradle < 8.14.4
- Use plugin 2.25.0 for Gradle < 7.0
New Features
Java 26 support
The plugin now supports running on Java versions 17 - 26.
Configuration-cache compatibility
The plugin is now compatible with Gradle's configuration-cache.
Dependency graph information is captured as serializable DependencyData at configuration time
and the task implementations no longer depend on live Project state during execution.
jlink and jpackage configuration cache reuse is now covered by functional tests.
locale filtering support for runtime images and packages
Added a new jlink.includeLocales option taking a list of BCP 47 locale tags and a new jlinkincludeLocalesFile option taking a text file with comma/newline separated language tags.
Locales from both sources are merged, normalized (for example EN-us -> en-US), and deduplicated.
The effective locales are applied to the jlink task.
When locales are configured, the plugin auto-adds jdk.localedata to jlink modules if not already present.
Top-level jpackage { ... } extension support
The jpackage { ... } extension can now be applied on top-level in addition to jlink { jpackage { ... } }.
Both entry points share the same underlying JPackageData
Other notable changes
- Added support for Java 26.
- Updated plugin for Gradle 10 compatibility.
Fixed Bugs
-
Fixed inability to use different launcher.name and jpackage.imageName.
-
Fixed issues caused by case-insensitive launcher/image name matching in packaging tasks.
-
Fixed secondary launcher handling issues (including secondary launcher module scenarios).
-
Fixed Gradle deprecation warnings.
-
Removed deprecated mergedModuleJarVersion and related code paths.
-
Fixed FileNotFoundException on Windows builds
-
Fixed failure on Windows when launcherName is set