cross-platform-launcher:createlauncher

Full name:

org.devzendo:cross-platform-launcher-plugin:1.1.1: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.
mainClassName String - The fully-qualified name of the main class of your application, i.e. contains a public static void main...
os String - The OS to generate a launcher for: Windows, MacOSX or Linux.

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.
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: ????.
bundleTypeName String - Mac OS X only: The bundle type name This is registered in the Mac OS X Info.plist as CFBundleTypeName.
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.
iconsFileName String - Mac OS X only: The name of the icons file.
janelCustomLines String[] - Windows only: A list of lines of text that will be added to the Janel launcher file.
janelType String - Deprecated. Use launcherType instead.
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: GUI.
libraryDirectory String - The directory where the application's jars are. By default, assume lib/
Default value is: lib.
localRepository ArtifactRepository - (no description)
mavenProject MavenProject - The Maven project.
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.
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.
remoteRepositories List - (no description)
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: Apple.
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.
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.

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
  • Expression: ${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
  • Expression: ${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
  • Expression: ${xplp.bundlesignature}
  • Default: ????

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
  • Expression: ${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
  • Expression: ${xplp.filetype}

iconsFileName:

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

janelCustomLines:

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

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
  • Expression: ${xplp.janeltype}

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
  • Expression: ${xplp.launchertype}
  • Default: GUI

libraryDirectory:

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

localRepository:

(no description)
  • Type: org.apache.maven.artifact.repository.ArtifactRepository
  • Required: No
  • Expression: ${localRepository}

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
  • Expression: ${xplp.mainclassname}

mavenProject:

The Maven project.
  • Type: org.apache.maven.project.MavenProject
  • Required: No
  • Expression: ${project}

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
  • Expression: ${xplp.narClassifierTypes}

os:

The OS to generate a launcher for: Windows, MacOSX or Linux.
  • Type: java.lang.String
  • Required: Yes
  • Expression: ${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
  • Expression: ${project.build.directory}

remoteRepositories:

(no description)
  • Type: java.util.List
  • Required: No
  • Expression: ${project.remoteArtifactRepositories}

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
  • Expression: ${xplp.stubtype}
  • Default: Apple

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
  • Expression: ${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
  • Expression: ${xplp.systemproperty}