SetupBuilder
SetupBuilder copied to clipboard
DMG and non-Java applications
Hello,
I am using SetupBuild to package a non-Java application. MSI generation on Windows works well, but on macOS, I get the following error:
Build file '/Users/.../build.gradle' line: 147
* What went wrong:
Execution failed for task ':dmg'.
> A main class is required for the application. You have to configure at least the following:
setupBuilder {
[..]
mainClass = 'your.org.main.class'
}
org.codehaus.groovy.control.ConfigurationException: A main class is required for the application. You have to configure at least the following:
at com.inet.gradle.setup.dmg.AbstractOSXApplicationBuilder.prepareApplication(AbstractOSXApplicationBuilder.java:116)
at com.inet.gradle.setup.dmg.OSXApplicationBuilder.buildApplication(OSXApplicationBuilder.java:89)
at com.inet.gradle.setup.dmg.DmgBuilder.build(DmgBuilder.java:95)
at com.inet.gradle.setup.dmg.Dmg.build(Dmg.java:108)
at com.inet.gradle.setup.abstracts.AbstractTask.action(AbstractTask.java:101)
Is this use case unsupported?
Sounds like you have define a desktopStarter
. Can you give more details.
That's correct. I disabled the desktopStarter now, but this leads to another error:
No Services or DesktopStarters have been defined. Will stop now
Here is a minimal script reproducing the issue:
plugins {
id "de.inetsoftware.setupbuilder" version "3.4.7" // version depends on Gradle version
}
apply plugin: 'de.inetsoftware.setupbuilder'
def isWindows = System.properties['os.name'].toLowerCase().contains('windows')
setupBuilder {
vendor = 'Vendor'
application = "Application"
appIdentifier = "appIdentifier"
version = '1.0.0'
destinationDir = "artifacts"
from("mydir") {
include '**'
}
if(isWindows) {
desktopStarter {
location = com.inet.gradle.setup.abstracts.DesktopStarter.Location.StartMenu
executable = "tool.exe"
}
}
}
msi {
languages = [ "en-US" ]
}
I am trying to generate a DMG file from the content of "mydir".
The setup builder does not currently allow generating DMG applications for non-java applications.