From 6969e817372c4d0d5ccf271b1b588d9cd2d1d866 Mon Sep 17 00:00:00 2001 From: david Date: Sat, 1 Jun 2024 19:02:02 +0200 Subject: [PATCH] Adding parameter to add additional modules to optimized JDK --- CHANGELOG.md | 2 ++ README.md | 5 ++++- warp4j | 11 +++++++++++ 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b9de507..9ccb5f1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [Unreleased] +### Added +- Additional modules that aren't fetched by jdeps can be added with `--add-modules module_1,...,module_n` ## [v1.1.0] - 2024-05-31 ### Changed diff --git a/README.md b/README.md index e4278c3..2790a42 100644 --- a/README.md +++ b/README.md @@ -78,13 +78,16 @@ Options: (default: ./warped) -p, --prefix If set, warp-packer will use the prefix - as target folder in which the + as target folder in which the application should be extracted --list Show available java releases; Takes into consideration other options: "--java-version", "--no-optimize", "--jvm-impl"; The output may be used to specify concrete "--java-version" + --add-modules A list of additional java modules that should + be added to the optimized JDK. Separate each + module with commas and no spaces --no-optimize Use JRE instead of optimized JDK; By default jdeps and jlink are used to create optimized JDK for the particular jar; diff --git a/warp4j b/warp4j index 936ef3e..5a5bcd8 100755 --- a/warp4j +++ b/warp4j @@ -31,6 +31,9 @@ function print_help { echo ' "--java-version", "--no-optimize", "--jvm-impl";' echo ' The output may be used to specify concrete' echo ' "--java-version"' + echo ' --add-modules A list of additional java modules that should' + echo ' be added to the optimized JDK. Separate each' + echo ' module with commas and no spaces' echo ' --no-optimize Use JRE instead of optimized JDK;' echo ' By default jdeps and jlink are used to create' echo ' optimized JDK for the particular jar;' @@ -159,6 +162,10 @@ while [[ $# -gt 0 ]]; do LIST_RELEASES=true shift ;; + --add-modules) + ADD_MODULES="$2" + shift 2 + ;; --no-optimize) NO_OPTIMIZE=true shift @@ -695,6 +702,10 @@ if [[ $JAVA_DISTRO_TYPE == $DISTRO_TYPE_JDK ]]; then echo "Fetch modules with default behavior" MODULES=$("$JDEPS" --print-module-deps --ignore-missing-deps --multi-release $JAVA_VERSION_BASE "$JAR" | grep -v Warning) fi + if [ -n "$ADD_MODULES" ]; then + echo "Adding additional modules to optimized JDK: $ADD_MODULES" + MODULES=$ADD_MODULES,$MODULES + fi fi # creates minimized runtime for the platform