cross-platform-launcher:createlauncher

Full name:

org.devzendo:cross-platform-launcher-plugin:1.2.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.
User property is: xplp.applicationname.
mainClassName String - The fully-qualified name of the main class of your application, i.e. contains a public static void main...
User property is: xplp.mainclassname.
os String - The OS to generate a launcher for: Windows, MacOSX or Linux.
User property 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.
User property 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: ????.
User property 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.
User property 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.
User property is: xplp.filetype.
iconsFileName String - Mac OS X only: The name of the icons file.
User property 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: 64.
User property is: xplp.janelbits.
janelCustomLines String[] - Windows only: A list of lines of text that will be added to the Janel launcher file.
User property is: xplp.janelcustomlines.
janelType String - Deprecated. Use launcherType instead.
User property 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: 3.0.
User property 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: GUI.
User property is: xplp.launchertype.
libraryDirectory String - The directory where the application's jars are. By default, assume lib/
Default value is: lib.
User property is: xplp.librarydirectory.
localRepository ArtifactRepository - (no description)
User property is: localRepository.
mavenProject MavenProject - The Maven project.
User property is: 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.
User property is: xplp.narClassifierTypes.
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.
User property is: project.build.directory.
remoteRepositories List - (no description)
User property is: project.remoteArtifactRepositories.
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.
User property 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.
User property 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.
User property is: xplp.systemproperty.

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
  • User Property: 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
  • User Property: 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
  • User Property: 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
  • User Property: 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
  • User Property: xplp.filetype

iconsFileName:

Mac OS X only: The name of the icons file.
  • Type: java.lang.String
  • Required: No
  • User Property: 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
  • User Property: xplp.janelbits
  • Default: 64

janelCustomLines:

Windows only: A list of lines of text that will be added to the Janel launcher file.
  • Type: java.lang.String[]
  • Required: No
  • User Property: 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
  • User Property: 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
  • User Property: xplp.janelversion
  • Default: 3.0

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
  • User Property: xplp.launchertype
  • Default: GUI

libraryDirectory:

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

localRepository:

(no description)
  • Type: org.apache.maven.artifact.repository.ArtifactRepository
  • Required: No
  • User Property: 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
  • User Property: xplp.mainclassname

mavenProject:

The Maven project.
  • Type: org.apache.maven.project.MavenProject
  • Required: No
  • User Property: 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
  • User Property: xplp.narClassifierTypes

os:

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

remoteRepositories:

(no description)
  • Type: java.util.List
  • Required: No
  • User Property: 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
  • User Property: 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
  • User Property: 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
  • User Property: xplp.systemproperty