beryx / badass-runtime-plugin

Create a custom runtime image of your non-modular application
https://badass-runtime-plugin.beryx.org
Apache License 2.0
161 stars 21 forks source link

How to create multiple installer types for the same platform? #132

Closed ctadlock closed 1 year ago

ctadlock commented 2 years ago

For Windows, I want to create both "zip" and "exe" (built on Windows), and for Linux I want to create both "deb" and "rpm" (built on Linux).

If this is in the documentation somewhere I cant find it.

ctadlock commented 2 years ago

After digging through the code I found that if you explicitly set installerType it will use that, but if you dont set it it will generate all for the operating system:

image

ctadlock commented 2 years ago

Nevermind, Im unable to create an rpm on Ubuntu 22.04.

> Task :gototags-desktopapp-app:jpackage FAILED
[13:41:31.963] Running dpkg
[13:41:31.971] Command [PID: 8756]:
    dpkg --print-architecture
[13:41:31.971] Output:
    amd64
[13:41:31.973] Returned: 0

[13:41:31.978] Running rpmbuild
[13:41:31.981] jdk.jpackage.internal.PackagerException: Error: Invalid or unsupported type: [rpm]
    at jdk.jpackage/jdk.jpackage.internal.Arguments.generateBundle(Arguments.java:683)
    at jdk.jpackage/jdk.jpackage.internal.Arguments.processArguments(Arguments.java:561)
    at jdk.jpackage/jdk.jpackage.main.Main.execute(Main.java:91)
    at jdk.jpackage/jdk.jpackage.main.Main.main(Main.java:52)
satsen commented 2 years ago

@ctadlock That is not an issue with this plugin. It's with the design of jpackage, you need to be on the system that you are going to create an installer for, you cannot cross-package installers. You can however create portable jlink app image archives but they're not so user-friendly.

hakanai commented 1 year ago

Closing this as answered.