beryx/badass-runtime-plugin

How to create multiple installer types for the same platform?

ctadlock opened this issue · 4 comments

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.

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

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)

@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.

Closing this as answered.