Closed theonejj closed 10 months ago
quoting the values in the pom doesn't solve the issue
manualy packaging outside of maven does work
/home/jjansen/Work/test-archtype/target/jdks/temurin17Linux/jdk-17.0.9+9/bin/jpackage --type deb --dest /home/jjansen/Work/test-archtype/target/jreleaser/assemble/app/jpackage --input /home/jjansen/Work/test-archtype/target/jreleaser/assemble/app/jpackage/work-linux-x86_64/inputs/files --name app --runtime-image /home/jjansen/Work/test-archtype/target/jreleaser/assemble/app/jpackage/work-linux-x86_64/runtime-image --app-version 0.0.1 --vendor "My Example Company" --copyright "2023 My Example Company" --description "My test-archtype Description" --main-class com.example.test.App --main-jar test-archtype-0.0.1.jar --icon /home/jjansen/Work/test-archtype/target/jreleaser/assemble/app/jpackage/work-linux-x86_64/inputs/app.png
JReleaser invokes jpackage
as an external process and thus creates a commandline that's passed to the underlying OS. I believe explicit quotes must be set on the command args.
Here's the location where the commandline is created https://github.com/jreleaser/jreleaser/blob/b2255dc3a41be0e1ee903591727e14b4b26c578d/core/jreleaser-engine/src/main/java/org/jreleaser/assemblers/JpackageAssemblerProcessor.java#L226
Which relies on a helper method named maybeQuote
that's implemented in this way
As a matter of fact calls to maybeQuote
should be replaced with StringUtils.quote
.
Thanks the infomation @aalmiray,
I have an update, I just tried to package again, but I can not reproduce the issue anymore. I even tried to add leading spaces and "-" values but it does not break the build anymore
[INFO] [jpackage] assembling app distribution
[DEBUG] [jpackage] creating props for jpackage/app
[DEBUG] [jpackage] filling git properties into props
[DEBUG] [jpackage] filling assembler properties into props
[DEBUG] [jpackage] jdk version is 17.0.9 /home/jjansen/Work/test-archtype/target/jdks/temurin17Linux/jdk-17.0.9+9
[DEBUG] [jpackage] resolving templates for jpackage/app
[DEBUG] [jpackage] resolving templates from classpath
[DEBUG] [jpackage] resolving template from classpath for jpackage.jpackage
[DEBUG] [jpackage] copying JARs to target/jreleaser/assemble/app/jpackage/work-linux-x86_64/inputs/files
[DEBUG] [jpackage] copying test-archtype-0.0.2.jar
[DEBUG] [jpackage] resolving resource from classpath for META-INF/jreleaser/icons/linux/duke.png
[DEBUG] [jpackage] copying files from /home/jjansen/Work/test-archtype/target/jreleaser/assemble/app-jlink/jlink/work-linux-x86_64/com.example.test.test-archtype-0.0.2-linux-x86_64 to /home/jjansen/Work/test-archtype/target/jreleaser/assemble/app/jpackage/work-linux-x86_64/runtime-image
[INFO] [jpackage] - packaging as deb
[DEBUG] [jpackage] /home/jjansen/Work/test-archtype/target/jdks/temurin17Linux/jdk-17.0.9+9/bin/jpackage --type deb --dest /home/jjansen/Work/test-archtype/target/jreleaser/assemble/app/jpackage --input /home/jjansen/Work/test-archtype/target/jreleaser/assemble/app/jpackage/work-linux-x86_64/inputs/files --name app --runtime-image /home/jjansen/Work/test-archtype/target/jreleaser/assemble/app/jpackage/work-linux-x86_64/runtime-image --app-version 0.0.2 --vendor Example Company B.V. --copyright 2023 - My Example Company --description My test archtype Description --verbose --main-class com.example.test.App --main-jar test-archtype-0.0.2.jar --icon /home/jjansen/Work/test-archtype/target/jreleaser/assemble/app/jpackage/work-linux-x86_64/inputs/app.png
I am not sure what was happening before 😩
Quite strange as quotes may only be applied when running on Windows, not Linux. Will double check in any case.
Strange indeed, I would have like to send you an example project. Feel free to close the issue. If I get the issue again I will let you know
It's OK. https://github.com/jreleaser/helloworld-java-jpackage may be used as a starter.
Cannot reproduce it either.
Thanks for creating this amazing project!!
Task List
Steps to Reproduce
Expected Behaviour
Actual Behaviour
The jpackage step will fail without with a null pointer error
Environment Information
Please paste stacktraces from
[out|build|target]/jreleaser/trace.log
.I have only tested it using the maven plugin, if necessary I am happy to test other ways or give more info.