cross-platform-launcher:createlauncher

Full name:

org.devzendo:cross-platform-launcher-plugin:1.3.0:createlauncher

Description:

A Maven plugin that creates launcher directory structures for Windows (using Janel), Mac OS X (creating a .app or script structure) or Linux (using a shell script).

Attributes:

  • Requires a Maven project to be executed.
  • Binds by default to the lifecycle phase: generate-resources.

Required Parameters

Name Type Since Description
<applicationName> String - The name of the application for whom this launcher is to be generated. On Mac OS X, this is used to name the application menu. On Windows, this is used to name the Janel .exe/.lap files. If not specified the client project's artifact id will be used.
Default value is: ${xplp.applicationname}.
<mainClassName> String - The fully-qualified name of the main class of your application, i.e. contains a public static void main...
Default value is: ${xplp.mainclassname}.
<os> String - The OS to generate a launcher for: Windows, MacOSX or Linux.
Default value is: ${xplp.os}.

Optional Parameters

Name Type Since Description
<bundleOsType> String - Mac OS X only: The bundle OS type. This is registered in the Mac OS X Info.plist as CFBundleTypeOSTypes.
Default value is: ${xplp.bundleostype}.
<bundleSignature> String - Mac OS X only: The bundle signature. Only use this if you have a registered creator code. This is registered in the Mac OS X Info.plist as CFBundleSignature, and in the PkgInfo prefixed with APPL

As stated at the Apple developer website "This is a simple text file that contains the string APPL optionally concatenated with a four letter creator code. If an application does not have a registered creator code, the string APPL???? should be used."
Default value is: ${xplp.bundlesignature}.
<bundleTypeName> String - Mac OS X only: The bundle type name This is registered in the Mac OS X Info.plist as CFBundleTypeName.
Default value is: ${xplp.bundletypename}.
<fileType> String - Mac OS X only: Any file type that is associated with this application. This is registered in the Mac OS X Info.plist as CFBundleTypeExtensions.
Default value is: ${xplp.filetype}.
<iconsFileName> String - Mac OS X only: The name of the icons file.
Default value is: ${xplp.iconsfilename}.
<janelBits> String - Windows only: If using the Enhanced Janel, are you using 32- or 64-bit? The original Janel makes no such distinction. Can be "32" or "64". The default is "64" as 32-bit systems are becoming rarer.
Default value is: ${xplp.janelbits}.
<janelCustomLines> String[] - Windows only: A list of lines of text that will be added to the Janel launcher file.
Default value is: ${xplp.janelcustomline}.
<janelDirectory> String - Windows only: Should the Janel .EXE, .DLL and .LAP file be in the root directory (the backwards-compatible default), or in a 'bin' directory? This affects the path to the library directory in the .LAP file - if "root", we can refer to the library directory as "lib", but if the .LAP file is in a "bin" directory, then the path to the library directory would be "../lib". Can be "root" or "bin". The default is "root" for backwards compatibility.
Default value is: ${xplp.janeldirectory}.
<janelType> String - Deprecated. Use launcherType instead.
Default value is: ${xplp.janeltype}.
<janelVersion> String - Windows only: The (major/minor) version of Janel you wish to use to launch your program. Choices are: The Original Janel 3.0.2 by Timothy D. Kil that's been discontinued. The Enhanced Janel 4.2.0-98 continued by Michael Knigge. Both versions of Janel are embedded in the plugin; if you are using the Enhanced version, also consider setting the xplp.janelbits property. Can be "3.0" (currently 3.0.2) or "4.2" (currently 4.2.0-98). The default is "3.0" for backwards compatibility.
Default value is: ${xplp.janelversion}.
<launcherType> String - The launcher type, can be "Console" or "GUI". For Windows, whether to use the Console or GUI Janel EXE. For Mac OS X, whether to create a script or .app structure.
Default value is: ${xplp.launchertype}.
<libraryDirectory> String - The directory where the application's jars are. By default, assume lib/
Default value is: ${xplp.librarydirectory}.
<narClassifierTypes> String[] - A list of NAR (Native ARchive, from the Maven NAR Plugin) classifiers and types. These refer to native library files that have been unpacked using the nar-download, nar-unpack and nar-assembly goals of the Maven NAR Plugin, and reside in the target/nar/lib/classifier/type directories.

Any files in these directories will be copied to the launcher's library directory.

The params you specify here must be in the form classifier:type, e.g. x86_64-MacOSX-g++:jni and you may specify as many as you like; only those directories that have anything in them will have their contents copied.
Default value is: ${xplp.narClassifierType}.
<outputDirectory> File - The directory into which the output files will be placed. By default, this is the target directory. The launcher directory structure will be created in a subdirectory of this. This subdirectory will be named according to the platform specified in the os parameter, so: windows, linux or macosx.
Default value is: ${project.build.directory}.
<stubType> String - Mac OS X GUI launchers only: whether to use Apple's JavaApplicationStub, or Tobias Fischer's universal application stub. (Currently this Maven plugin supplies v2.1.0 of Tobias' stub) Please see https://github.com/tofi86/universalJavaApplicationStub for details of this. If you want to launch with something other than Apple Java 6, you need the universal stub. Can be "Apple" or "Universal". Default is "Apple" for backwards compatibility.
Default value is: ${xplp.stubtype}.
<systemProperties> String[] - A list of system properties, to be passed to the JVM via multiple -Dxxx=yyy parameters. When specifying system properties, omit the -D, and just give them as xxx=yyy. The platform-specific launcher will add in the -D if necessary.
Default value is: ${xplp.systemproperty}.
<vmArguments> String[] - A list of VM arguments, to be passed straight to the JVM, e.g. -Xmx2048. Note that on Mac OS X, your application should set -Xdock:name=MyApplication to have the correct name in the application menu and on the dock.
Default value is: ${xplp.vmargument}.

Parameter Details

<applicationName>

The name of the application for whom this launcher is to be generated. On Mac OS X, this is used to name the application menu. On Windows, this is used to name the Janel .exe/.lap files. If not specified the client project's artifact id will be used.
  • Type: java.lang.String
  • Required: Yes
  • Default: ${xplp.applicationname}

<bundleOsType>

Mac OS X only: The bundle OS type. This is registered in the Mac OS X Info.plist as CFBundleTypeOSTypes.
  • Type: java.lang.String
  • Required: No
  • Default: ${xplp.bundleostype}

<bundleSignature>

Mac OS X only: The bundle signature. Only use this if you have a registered creator code. This is registered in the Mac OS X Info.plist as CFBundleSignature, and in the PkgInfo prefixed with APPL

As stated at the Apple developer website "This is a simple text file that contains the string APPL optionally concatenated with a four letter creator code. If an application does not have a registered creator code, the string APPL???? should be used."
  • Type: java.lang.String
  • Required: No
  • Default: ${xplp.bundlesignature}

<bundleTypeName>

Mac OS X only: The bundle type name This is registered in the Mac OS X Info.plist as CFBundleTypeName.
  • Type: java.lang.String
  • Required: No
  • Default: ${xplp.bundletypename}

<fileType>

Mac OS X only: Any file type that is associated with this application. This is registered in the Mac OS X Info.plist as CFBundleTypeExtensions.
  • Type: java.lang.String
  • Required: No
  • Default: ${xplp.filetype}

<iconsFileName>

Mac OS X only: The name of the icons file.
  • Type: java.lang.String
  • Required: No
  • Default: ${xplp.iconsfilename}

<janelBits>

Windows only: If using the Enhanced Janel, are you using 32- or 64-bit? The original Janel makes no such distinction. Can be "32" or "64". The default is "64" as 32-bit systems are becoming rarer.
  • Type: java.lang.String
  • Required: No
  • Default: ${xplp.janelbits}

<janelCustomLines>

Windows only: A list of lines of text that will be added to the Janel launcher file.
  • Type: java.lang.String[]
  • Required: No
  • Default: ${xplp.janelcustomline}

<janelDirectory>

Windows only: Should the Janel .EXE, .DLL and .LAP file be in the root directory (the backwards-compatible default), or in a 'bin' directory? This affects the path to the library directory in the .LAP file - if "root", we can refer to the library directory as "lib", but if the .LAP file is in a "bin" directory, then the path to the library directory would be "../lib". Can be "root" or "bin". The default is "root" for backwards compatibility.
  • Type: java.lang.String
  • Required: No
  • Default: ${xplp.janeldirectory}

<janelType>

Deprecated. Use launcherType instead.
Windows only: Whether to use the Console or GUI Janel EXE. Can be "Console" or "GUI"
  • Type: java.lang.String
  • Required: No
  • Default: ${xplp.janeltype}

<janelVersion>

Windows only: The (major/minor) version of Janel you wish to use to launch your program. Choices are: The Original Janel 3.0.2 by Timothy D. Kil that's been discontinued. The Enhanced Janel 4.2.0-98 continued by Michael Knigge. Both versions of Janel are embedded in the plugin; if you are using the Enhanced version, also consider setting the xplp.janelbits property. Can be "3.0" (currently 3.0.2) or "4.2" (currently 4.2.0-98). The default is "3.0" for backwards compatibility.
  • Type: java.lang.String
  • Required: No
  • Default: ${xplp.janelversion}

<launcherType>

The launcher type, can be "Console" or "GUI". For Windows, whether to use the Console or GUI Janel EXE. For Mac OS X, whether to create a script or .app structure.
  • Type: java.lang.String
  • Required: No
  • Default: ${xplp.launchertype}

<libraryDirectory>

The directory where the application's jars are. By default, assume lib/
  • Type: java.lang.String
  • Required: No
  • Default: ${xplp.librarydirectory}

<mainClassName>

The fully-qualified name of the main class of your application, i.e. contains a public static void main...
  • Type: java.lang.String
  • Required: Yes
  • Default: ${xplp.mainclassname}

<narClassifierTypes>

A list of NAR (Native ARchive, from the Maven NAR Plugin) classifiers and types. These refer to native library files that have been unpacked using the nar-download, nar-unpack and nar-assembly goals of the Maven NAR Plugin, and reside in the target/nar/lib/classifier/type directories.

Any files in these directories will be copied to the launcher's library directory.

The params you specify here must be in the form classifier:type, e.g. x86_64-MacOSX-g++:jni and you may specify as many as you like; only those directories that have anything in them will have their contents copied.
  • Type: java.lang.String[]
  • Required: No
  • Default: ${xplp.narClassifierType}

<os>

The OS to generate a launcher for: Windows, MacOSX or Linux.
  • Type: java.lang.String
  • Required: Yes
  • Default: ${xplp.os}

<outputDirectory>

The directory into which the output files will be placed. By default, this is the target directory. The launcher directory structure will be created in a subdirectory of this. This subdirectory will be named according to the platform specified in the os parameter, so: windows, linux or macosx.
  • Type: java.io.File
  • Required: No
  • Default: ${project.build.directory}

<stubType>

Mac OS X GUI launchers only: whether to use Apple's JavaApplicationStub, or Tobias Fischer's universal application stub. (Currently this Maven plugin supplies v2.1.0 of Tobias' stub) Please see https://github.com/tofi86/universalJavaApplicationStub for details of this. If you want to launch with something other than Apple Java 6, you need the universal stub. Can be "Apple" or "Universal". Default is "Apple" for backwards compatibility.
  • Type: java.lang.String
  • Required: No
  • Default: ${xplp.stubtype}

<systemProperties>

A list of system properties, to be passed to the JVM via multiple -Dxxx=yyy parameters. When specifying system properties, omit the -D, and just give them as xxx=yyy. The platform-specific launcher will add in the -D if necessary.
  • Type: java.lang.String[]
  • Required: No
  • Default: ${xplp.systemproperty}

<vmArguments>

A list of VM arguments, to be passed straight to the JVM, e.g. -Xmx2048. Note that on Mac OS X, your application should set -Xdock:name=MyApplication to have the correct name in the application menu and on the dock.
  • Type: java.lang.String[]
  • Required: No
  • Default: ${xplp.vmargument}