Class AppBundler

java.lang.Object
org.gradle.api.internal.AbstractTask
org.gradle.api.DefaultTask
gmbh.pagina.tools.gradle.mac_app.AppBundler
All Implemented Interfaces:
Comparable<org.gradle.api.Task>, org.gradle.api.internal.DynamicObjectAware, org.gradle.api.internal.TaskInternal, org.gradle.api.plugins.ExtensionAware, org.gradle.api.Task, org.gradle.util.Configurable<org.gradle.api.Task>

@CacheableTask public class AppBundler extends org.gradle.api.DefaultTask
Create a mac app file structure.
  • Constructor Details

    • AppBundler

      public AppBundler()
      Creates the task with default group and description.
  • Method Details

    • getAppName

      @Input public String getAppName()
      Gets the app name.
      Returns:
      the app name
    • setAppName

      public void setAppName(String appName)
      Sets the app name (without extension).
      Parameters:
      appName - the app name to set
    • getOutdir

      @Internal public String getOutdir()
      Gets the output directory path.
      Returns:
      the output directory absolute path
    • setOutdir

      public void setOutdir(String outdir)
      Sets the output directory path.
      Parameters:
      outdir - the output directory path
    • setOutdir

      public void setOutdir(File outdir)
      Sets the output directory.
      Parameters:
      outdir - the output directory
    • getPkgInfoSignature

      @Input public String getPkgInfoSignature()
      Gets the four-character PkgInfo signature.
      Returns:
      the package signature
    • setPkgInfoSignature

      public void setPkgInfoSignature(String pkgInfoSignature)
      Sets the package signature for the PkgInfo file.
      Parameters:
      pkgInfoSignature - the four-character package signature
    • getDevelopmentRegion

      @Input @Optional public String getDevelopmentRegion()
      Gets the CFBundle development region.
      Returns:
      the development region, or null when unset
    • setDevelopmentRegion

      public void setDevelopmentRegion(String developmentRegion)
      Sets the CFBundle development region.
      Parameters:
      developmentRegion - the development region code
    • getBundleIdentifier

      @Input @Optional public String getBundleIdentifier()
      Gets the bundle identifier.
      Returns:
      the bundle identifier, or null when unset
    • setBundleIdentifier

      public void setBundleIdentifier(String bundleIdentifier)
      Sets the bundle identifier.
      Parameters:
      bundleIdentifier - the bundle identifier
    • getCopyright

      @Input @Optional public String getCopyright()
      Gets the copyright string.
      Returns:
      the copyright value, or null when unset
    • setCopyright

      public void setCopyright(String copyright)
      Sets the copyright string.
      Parameters:
      copyright - the copyright value
    • getIcon

      @Internal public String getIcon()
      Gets the icon file path.
      Returns:
      the icon file path, or null when unset
    • setIcon

      public void setIcon(String icon)
      Sets the icon file path.
      Parameters:
      icon - the icon file path
    • getAdditionalResources

      @Internal public List<String> getAdditionalResources()
      Gets additional resource paths to copy into the app bundle.
      Returns:
      additional resource paths, or null when unset
    • setAdditionalResources

      public void setAdditionalResources(String[] additionalResources)
      Sets additional resources using an array.
      Parameters:
      additionalResources - additional resource paths
    • setAdditionalResources

      public void setAdditionalResources(List<String> additionalResources)
      Sets additional resources using a list.
      Parameters:
      additionalResources - additional resource paths
    • getViewableDocumentTypes

      @Input @Optional public List<String> getViewableDocumentTypes()
      Gets viewable document UTI values.
      Returns:
      viewable document types, or null when unset
    • setViewableDocumentTypes

      public void setViewableDocumentTypes(String[] viewableDocumentTypes)
      Sets viewable document types using an array.
      Parameters:
      viewableDocumentTypes - document UTI values
    • setViewableDocumentTypes

      public void setViewableDocumentTypes(List<String> viewableDocumentTypes)
      Sets viewable document types using a list.
      Parameters:
      viewableDocumentTypes - document UTI values
    • getJavaProperties

      @Input @Optional public List<String> getJavaProperties()
      Gets Java system property arguments.
      Returns:
      Java property arguments, or null when unset
    • setJavaProperties

      public void setJavaProperties(String[] javaProperties)
      Sets Java system property arguments using an array.
      Parameters:
      javaProperties - Java property arguments
    • setJavaProperties

      public void setJavaProperties(List<String> javaProperties)
      Sets Java system property arguments using a list.
      Parameters:
      javaProperties - Java property arguments
    • getVmOptions

      @Input @Optional public List<String> getVmOptions()
      Gets JVM option arguments.
      Returns:
      JVM options, or null when unset
    • setVmOptions

      public void setVmOptions(String[] vmOptions)
      Sets JVM option arguments using an array.
      Parameters:
      vmOptions - JVM options
    • setVmOptions

      public void setVmOptions(List<String> vmOptions)
      Sets JVM option arguments using a list.
      Parameters:
      vmOptions - JVM options
    • getMainArguments

      @Input @Optional public List<String> getMainArguments()
      Gets main-class arguments.
      Returns:
      main arguments, or null when unset
    • setMainArguments

      public void setMainArguments(String[] mainArguments)
      Sets main-class arguments using an array.
      Parameters:
      mainArguments - main arguments
    • setMainArguments

      public void setMainArguments(List<String> mainArguments)
      Sets main-class arguments using a list.
      Parameters:
      mainArguments - main arguments
    • getAdditionalPlistEntries

      @Input @Optional public Map<String,Object> getAdditionalPlistEntries()
      Gets additional top-level Info.plist entries.
      Returns:
      additional plist entries, or null when unset
    • setAdditionalPlistEntries

      public void setAdditionalPlistEntries(Map<String,?> additionalPlistEntries)
      Sets additional top-level Info.plist entries.
      Parameters:
      additionalPlistEntries - additional plist entries
    • getAdditionalJavaXEntries

      @Input @Optional public Map<String,Object> getAdditionalJavaXEntries()
      Gets additional JavaX dictionary entries.
      Returns:
      additional JavaX entries, or null when unset
    • setAdditionalJavaXEntries

      public void setAdditionalJavaXEntries(Map<String,?> additionalJavaXEntries)
      Sets additional JavaX dictionary entries.
      Parameters:
      additionalJavaXEntries - additional JavaX entries
    • getStartOnMainThread

      @Input @Optional public Boolean getStartOnMainThread()
      Gets the main-thread startup flag.
      Returns:
      true/false value, or null when unset
    • setStartOnMainThread

      public void setStartOnMainThread(Boolean startOnMainThread)
      Sets whether launch must happen on the macOS main thread.
      Parameters:
      startOnMainThread - startup flag
    • getSplashFile

      @Internal public String getSplashFile()
      Gets the splash file path.
      Returns:
      splash file path, or null when unset
    • setSplashFile

      public void setSplashFile(String splashFile)
      Sets the splash file path.
      Parameters:
      splashFile - splash file path
    • getMainClassName

      @Input public String getMainClassName()
      Gets the fully-qualified main class name.
      Returns:
      the main class name
    • setMainClassName

      public void setMainClassName(String mainClassName)
      Sets the fully-qualified main class name.
      Parameters:
      mainClassName - the main class name
    • getProjectName

      @Input public String getProjectName()
      Gets the project name.
      Returns:
      project name
    • setProjectName

      public void setProjectName(String projectName)
      Sets the project name.
      Parameters:
      projectName - project name
    • getProjectVersion

      @Input public String getProjectVersion()
      Gets the project version.
      Returns:
      project version
    • setProjectVersion

      public void setProjectVersion(String projectVersion)
      Sets the project version.
      Parameters:
      projectVersion - project version
    • getTargetJavaVersion

      @Input public Integer getTargetJavaVersion()
      Gets the minimum Java version for launcher metadata.
      Returns:
      target Java version
    • setTargetJavaVersion

      public void setTargetJavaVersion(Integer targetJavaVersion)
      Sets the minimum Java version for launcher metadata.
      Parameters:
      targetJavaVersion - target Java version
    • getJavaApplicationStubFiles

      @InputFiles @PathSensitive(NAME_ONLY) public org.gradle.api.file.ConfigurableFileCollection getJavaApplicationStubFiles()
      Gets the Java application stub input files.
      Returns:
      configured stub input files
    • getMainJarFiles

      @InputFiles @PathSensitive(NAME_ONLY) public org.gradle.api.file.ConfigurableFileCollection getMainJarFiles()
      Gets the main JAR input files.
      Returns:
      configured main JAR input files
    • getRuntimeClasspath

      @Classpath public org.gradle.api.file.ConfigurableFileCollection getRuntimeClasspath()
      Gets runtime classpath input files.
      Returns:
      configured runtime classpath files
    • getAppNameProperty

      @Internal public org.gradle.api.provider.Property<String> getAppNameProperty()
      Returns the app name property.
      Returns:
      app name property
    • getOutdirProperty

      @Internal public org.gradle.api.file.DirectoryProperty getOutdirProperty()
      Returns the output directory property.
      Returns:
      output directory property
    • getIconProperty

      @Internal public org.gradle.api.provider.Property<String> getIconProperty()
      Returns the icon property.
      Returns:
      icon property
    • getMainClassNameProperty

      @Internal public org.gradle.api.provider.Property<String> getMainClassNameProperty()
      Returns the main class property.
      Returns:
      main class property
    • getProjectNameProperty

      @Internal public org.gradle.api.provider.Property<String> getProjectNameProperty()
      Returns the project name property.
      Returns:
      project name property
    • getProjectVersionProperty

      @Internal public org.gradle.api.provider.Property<String> getProjectVersionProperty()
      Returns the project version property.
      Returns:
      project version property
    • getTargetJavaVersionProperty

      @Internal public org.gradle.api.provider.Property<Integer> getTargetJavaVersionProperty()
      Returns the target Java version property.
      Returns:
      target Java version property
    • getJavaPropertiesProperty

      @Internal public org.gradle.api.provider.ListProperty<String> getJavaPropertiesProperty()
      Returns the Java properties list property.
      Returns:
      Java properties list property
    • getVmOptionsProperty

      @Internal public org.gradle.api.provider.ListProperty<String> getVmOptionsProperty()
      Returns the VM options list property.
      Returns:
      VM options list property
    • getMainArgumentsProperty

      @Internal public org.gradle.api.provider.ListProperty<String> getMainArgumentsProperty()
      Returns the main arguments list property.
      Returns:
      main arguments list property
    • getAdditionalPlistEntriesProperty

      @Internal public org.gradle.api.provider.MapProperty<String,Object> getAdditionalPlistEntriesProperty()
      Returns the additional top-level plist entries map property.
      Returns:
      additional plist entries map property
    • getAdditionalJavaXEntriesProperty

      @Internal public org.gradle.api.provider.MapProperty<String,Object> getAdditionalJavaXEntriesProperty()
      Returns the additional JavaX entries map property.
      Returns:
      additional JavaX entries map property
    • getStartOnMainThreadProperty

      @Internal public org.gradle.api.provider.Property<Boolean> getStartOnMainThreadProperty()
      Returns the main-thread startup property.
      Returns:
      main-thread startup property
    • getSplashFileProperty

      @Internal public org.gradle.api.provider.Property<String> getSplashFileProperty()
      Returns the splash file property.
      Returns:
      splash file property
    • getIconFile

      @Optional @InputFile @PathSensitive(RELATIVE) public File getIconFile()
      Gets the icon file input for Gradle incremental checks.
      Returns:
      icon file, or null when no icon is configured
    • getAdditionalResourceFiles

      @Optional @InputFiles @PathSensitive(RELATIVE) public org.gradle.api.file.ConfigurableFileCollection getAdditionalResourceFiles()
      Gets additional resource file inputs for Gradle incremental checks.
      Returns:
      additional resource file collection, possibly empty
    • getSplashFileInput

      @Optional @InputFile @PathSensitive(RELATIVE) public File getSplashFileInput()
      Gets the configured splash image file input.
      Returns:
      splash image file, or null when no splash is configured
    • getSplashFile2xInput

      @Optional @InputFile @PathSensitive(RELATIVE) public File getSplashFile2xInput()
      Gets the optional @2x splash image file next to the configured splash image.
      Returns:
      retina splash image file, or null when not present
    • setJavaApplicationStub

      public void setJavaApplicationStub(JavaApplicationStubSource source)
      Configures the javaApplicationStub task from this task.
      Parameters:
      source - combined source descriptor for URL, unzip mode, and executable name
    • javaApplicationStub

      public void javaApplicationStub(groovy.lang.Closure<?> closure)
      Configures the javaApplicationStub task using a delegated closure.
      Parameters:
      closure - configuration closure delegated to JASDownloader
    • getUniversalJavaApplicationStubShell

      @Internal public JavaApplicationStubSource getUniversalJavaApplicationStubShell()
      Gets the shell-script preset source for universalJavaApplicationStub.
      Returns:
      shell-script preset source
    • getUniversalJavaApplicationStubProcompiled

      @Internal public JavaApplicationStubSource getUniversalJavaApplicationStubProcompiled()
      Gets the precompiled preset source for universalJavaApplicationStub.
      Returns:
      precompiled preset source
    • getNativeJavaApplicationStubv1

      @Internal public JavaApplicationStubSource getNativeJavaApplicationStubv1()
      Gets the NativeJavaApplicationStub v1 preset source.
      Returns:
      native v1 preset source
    • getMacApp

      @OutputDirectory public File getMacApp()
      The app bundle that is generated.
      Returns:
      generated app bundle directory
    • getMacAppTarGz

      @Internal public File getMacAppTarGz()
      The archive path traditionally generated alongside the app bundle.
      Returns:
      generated tar.gz archive file path
    • taskAction

      public void taskAction() throws IOException
      The main action: execute the task and generate the unsigned app bundle.
      Throws:
      IOException - If required file operations fail.