appassembler:assemble

Full name:

org.codehaus.mojo:appassembler-maven-plugin:1.10:assemble

Description:

Assembles the artifacts and generates bin scripts for the configured applications

Attributes:

  • Requires a Maven project to be executed.
  • Requires dependency resolution of artifacts in scope: runtime.
  • The goal is thread-safe and supports parallel builds.
  • Binds by default to the lifecycle phase: package.

Required Parameters

Name Type Since Description
assembleDirectory File - The directory that will be used to assemble the artifacts in and place the bin scripts.
Default value is: ${project.build.directory}/appassembler.
User property is: assembleDirectory.
programs Set - The set of Programs that bin files will be generated for.

Optional Parameters

Name Type Since Description
binFileExtensions Map 1.1 The file extensions to use for bin files. The file extensions are stored in a Map that uses the platform name as key. To change the file extension for Unix bin files to ".sh" use this configuration:
         <binFileExtensions>
           <unix>.sh</unix>
         </binFileExtensions>

binFolder String 1.2 Define the name of binary folder.
Default value is: bin.
configurationDirectory String - The name of the target directory for configuration files. Prior to version 1.7 this value defaults to 'conf' for assemble goal and 'etc' for generate-daemons
Default value is: etc.
configurationSourceDirectory File 1.1 The source directory for configuration files.
Default value is: src/main/config.
copyConfigurationDirectory boolean 1.1 (assemble), 1.7 (generate-daemons) If the source configuration directory should be copied to the configured configurationDirectory.
Default value is: false.
encoding String 1.8 The character encoding scheme to be applied when filtering the source configuration directory.
Default value is: ${project.build.sourceEncoding}.
endorsedDir String 1.6 Location under base directory where all of files non-recursively are added before the generated classpath. Java 6+ only since it uses wildcard classpath format. This is a convenient way to have user to add artifacts that not possible to be part of final assembly such as LGPL/GPL artifacts
environmentSetupFileName String 1.2.3 (generate-daemons) Setup file in $BASEDIR/bin to be called prior to execution.

Note: only for the jsw platform. If this optional environment file also sets up WRAPPER_CONF_OVERRIDES variable, it will be passed into JSW native launcher's command line arguments to override wrapper.conf's properties. See http://wrapper.tanukisoftware.com/doc/english/props-command-line.html for details.


escapeString String 1.8 Expressions preceded with this String won't be interpolated. \${foo} will be replaced with ${foo}.
extraJvmArguments String - Extra arguments that will be given to the JVM verbatim. If you define JvmSettings on the Program.setJvmSettings() level this part will be overwritten by the given parameters on program level. Otherwise if Program.setJvmSettings() is not given these settings will be used instead. This can be used to define some default values whereas by using the Program.setJvmSettings() to overwrite the default settings. This is only valid for the extraJvmArguments not for the rest of the JvmSettings. Since 1.2 it's possible to use place holders @BASEDIR@ and @REPO@ which will be expanded based on the platform for which the appropriate scripts will be generated.
filterConfigurationDirectory boolean 1.8 If the source configuration directory should be filtered when copied to the configured configurationDirectory. This configuration can be replaced by a more generic preAssembleDirectory option
Default value is: false.
filterPreAssembleDirectory boolean 1.10 If the source pre-assemble directory should be filtered when copied to the configured assembleDirectory.
Default value is: false.
generateRepository boolean - Set to false to skip repository generation.
Default value is: true.
includeConfigurationDirectoryInClasspath boolean - If the configurationDirectory (etc by default) should be included in the beginning of the classpath in the generated bin files.
Default value is: true.
licenseHeaderFile File 1.2 You can define a license header file which will be used instead the default header in the generated scripts.
logsDirectory String 1.8 The logs directory for the assembled project. If you specify a value for this parameter an empty directory with the name given will be created.
User property is: logsDirectory.
outputFileNameMapping String 1.5 The file name mapping to use when copying libraries to the repository. If no file mapping is set (default) the files are copied with their standard names.

Note: if you use this parameter, then the useTimestampInSnapshotFileName parameter will be ignored.


platforms Set - The default platforms the plugin will generate bin files for. Configure with string values - "all"(default/empty) | "windows" | "unix".
preAssembleDirectory File 1.10 If exists, copy this directory's contents to the configured assembleDirectory with option to filter. This configuration can replace copyConfigurationDirectory
projectArtifactFirstInClassPath boolean 1.2.1 This can be used to put the project artifact as the first entry in the classpath after the configuration folder ( etc by default). The default behavior is to have the project artifact at the last position in classpath.
Default value is: false.
repositoryLayout String - The layout of the generated Maven repository. Supported types - "default" (Maven2) | "legacy" (Maven1) | "flat" (flat lib/ style). The style "legacy" is only supported if you are running under Maven 2.2.1 and before.
Default value is: default.
repositoryName String - Path (relative to assembleDirectory) of the desired output repository.
Default value is: repo.
showConsoleWindow boolean - Show console window when execute this application. When false, the generated java command runs in background. This works best for Swing application where the command line invocation is not blocked.
Default value is: true.
tempDirectory String 1.8 The temp directory of the assembled project. If you specify a value for this parameter an empty directory with the name given will be created.
User property is: tempDirectory.
unixScriptTemplate String 1.3 The unix template of the generated script. It can be a file or resource path. If not given, an internal one is used. Use with care since it is not guaranteed to be compatible with new plugin release.
User property is: unixScriptTemplate.
useAllProjectDependencies boolean 1.2.3 The following can be used to use all project dependencies instead of the default behavior which represents runtime dependencies only.
Default value is: false.
useTimestampInSnapshotFileName boolean 1.2.3 (create-repository), 1.3 (assemble and generate-daemons) For those snapshots downloaded from a remote repo, replace the timestamp part with "SNAPSHOT" instead.
Default value is: true.
useWildcardClassPath boolean 1.2.3 (assemble), 1.3.1 (generate-daemons) Sometimes it happens that you have many dependencies which means having a very long classpath, and becomes too long (in particular on Windows based platforms). This option can help in such situation. If you activate this option, your classpath contains only a classpath wildcard (REPO/*). But be aware that this works only in combination with Java 1.6 and above and with repositoryLayout flat.
Default value is: false.
windowsScriptTemplate String 1.3 The windows template of the generated script. It can be a file or resource path. If not given, an internal one is used. Use with care since it is not guaranteed to be compatible with new plugin release.
User property is: windowsScriptTemplate.

Parameter Details

assembleDirectory:

The directory that will be used to assemble the artifacts in and place the bin scripts.
  • Type: java.io.File
  • Required: Yes
  • User Property: assembleDirectory
  • Default: ${project.build.directory}/appassembler

binFileExtensions:

The file extensions to use for bin files. The file extensions are stored in a Map that uses the platform name as key. To change the file extension for Unix bin files to ".sh" use this configuration:
         <binFileExtensions>
           <unix>.sh</unix>
         </binFileExtensions>
  • Type: java.util.Map
  • Since: 1.1
  • Required: No

binFolder:

Define the name of binary folder.
  • Type: java.lang.String
  • Since: 1.2
  • Required: No
  • Default: bin

configurationDirectory:

The name of the target directory for configuration files. Prior to version 1.7 this value defaults to 'conf' for assemble goal and 'etc' for generate-daemons
  • Type: java.lang.String
  • Required: No
  • Default: etc

configurationSourceDirectory:

The source directory for configuration files.
  • Type: java.io.File
  • Since: 1.1
  • Required: No
  • Default: src/main/config

copyConfigurationDirectory:

If the source configuration directory should be copied to the configured configurationDirectory.
  • Type: boolean
  • Since: 1.1 (assemble), 1.7 (generate-daemons)
  • Required: No
  • Default: false

encoding:

The character encoding scheme to be applied when filtering the source configuration directory.
  • Type: java.lang.String
  • Since: 1.8
  • Required: No
  • Default: ${project.build.sourceEncoding}

endorsedDir:

Location under base directory where all of files non-recursively are added before the generated classpath. Java 6+ only since it uses wildcard classpath format. This is a convenient way to have user to add artifacts that not possible to be part of final assembly such as LGPL/GPL artifacts
  • Type: java.lang.String
  • Since: 1.6
  • Required: No

environmentSetupFileName:

Setup file in $BASEDIR/bin to be called prior to execution.

Note: only for the jsw platform. If this optional environment file also sets up WRAPPER_CONF_OVERRIDES variable, it will be passed into JSW native launcher's command line arguments to override wrapper.conf's properties. See http://wrapper.tanukisoftware.com/doc/english/props-command-line.html for details.

  • Type: java.lang.String
  • Since: 1.2.3 (generate-daemons)
  • Required: No

escapeString:

Expressions preceded with this String won't be interpolated. \${foo} will be replaced with ${foo}.
  • Type: java.lang.String
  • Since: 1.8
  • Required: No

extraJvmArguments:

Extra arguments that will be given to the JVM verbatim. If you define JvmSettings on the Program.setJvmSettings() level this part will be overwritten by the given parameters on program level. Otherwise if Program.setJvmSettings() is not given these settings will be used instead. This can be used to define some default values whereas by using the Program.setJvmSettings() to overwrite the default settings. This is only valid for the extraJvmArguments not for the rest of the JvmSettings. Since 1.2 it's possible to use place holders @BASEDIR@ and @REPO@ which will be expanded based on the platform for which the appropriate scripts will be generated.
  • Type: java.lang.String
  • Required: No

filterConfigurationDirectory:

If the source configuration directory should be filtered when copied to the configured configurationDirectory. This configuration can be replaced by a more generic preAssembleDirectory option
  • Type: boolean
  • Since: 1.8
  • Required: No
  • Default: false

filterPreAssembleDirectory:

If the source pre-assemble directory should be filtered when copied to the configured assembleDirectory.
  • Type: boolean
  • Since: 1.10
  • Required: No
  • Default: false

generateRepository:

Set to false to skip repository generation.
  • Type: boolean
  • Required: No
  • Default: true

includeConfigurationDirectoryInClasspath:

If the configurationDirectory (etc by default) should be included in the beginning of the classpath in the generated bin files.
  • Type: boolean
  • Required: No
  • Default: true

licenseHeaderFile:

You can define a license header file which will be used instead the default header in the generated scripts.
  • Type: java.io.File
  • Since: 1.2
  • Required: No

logsDirectory:

The logs directory for the assembled project. If you specify a value for this parameter an empty directory with the name given will be created.
  • Type: java.lang.String
  • Since: 1.8
  • Required: No
  • User Property: logsDirectory

outputFileNameMapping:

The file name mapping to use when copying libraries to the repository. If no file mapping is set (default) the files are copied with their standard names.

Note: if you use this parameter, then the useTimestampInSnapshotFileName parameter will be ignored.

  • Type: java.lang.String
  • Since: 1.5
  • Required: No

platforms:

The default platforms the plugin will generate bin files for. Configure with string values - "all"(default/empty) | "windows" | "unix".
  • Type: java.util.Set
  • Required: No

preAssembleDirectory:

If exists, copy this directory's contents to the configured assembleDirectory with option to filter. This configuration can replace copyConfigurationDirectory
  • Type: java.io.File
  • Since: 1.10
  • Required: No

programs:

The set of Programs that bin files will be generated for.
  • Type: java.util.Set
  • Required: Yes

projectArtifactFirstInClassPath:

This can be used to put the project artifact as the first entry in the classpath after the configuration folder ( etc by default). The default behavior is to have the project artifact at the last position in classpath.
  • Type: boolean
  • Since: 1.2.1
  • Required: No
  • Default: false

repositoryLayout:

The layout of the generated Maven repository. Supported types - "default" (Maven2) | "legacy" (Maven1) | "flat" (flat lib/ style). The style "legacy" is only supported if you are running under Maven 2.2.1 and before.
  • Type: java.lang.String
  • Required: No
  • Default: default

repositoryName:

Path (relative to assembleDirectory) of the desired output repository.
  • Type: java.lang.String
  • Required: No
  • Default: repo

showConsoleWindow:

Show console window when execute this application. When false, the generated java command runs in background. This works best for Swing application where the command line invocation is not blocked.
  • Type: boolean
  • Required: No
  • Default: true

tempDirectory:

The temp directory of the assembled project. If you specify a value for this parameter an empty directory with the name given will be created.
  • Type: java.lang.String
  • Since: 1.8
  • Required: No
  • User Property: tempDirectory

unixScriptTemplate:

The unix template of the generated script. It can be a file or resource path. If not given, an internal one is used. Use with care since it is not guaranteed to be compatible with new plugin release.
  • Type: java.lang.String
  • Since: 1.3
  • Required: No
  • User Property: unixScriptTemplate

useAllProjectDependencies:

The following can be used to use all project dependencies instead of the default behavior which represents runtime dependencies only.
  • Type: boolean
  • Since: 1.2.3
  • Required: No
  • Default: false

useTimestampInSnapshotFileName:

For those snapshots downloaded from a remote repo, replace the timestamp part with "SNAPSHOT" instead.
  • Type: boolean
  • Since: 1.2.3 (create-repository), 1.3 (assemble and generate-daemons)
  • Required: No
  • Default: true

useWildcardClassPath:

Sometimes it happens that you have many dependencies which means having a very long classpath, and becomes too long (in particular on Windows based platforms). This option can help in such situation. If you activate this option, your classpath contains only a classpath wildcard (REPO/*). But be aware that this works only in combination with Java 1.6 and above and with repositoryLayout flat.
  • Type: boolean
  • Since: 1.2.3 (assemble), 1.3.1 (generate-daemons)
  • Required: No
  • Default: false

windowsScriptTemplate:

The windows template of the generated script. It can be a file or resource path. If not given, an internal one is used. Use with care since it is not guaranteed to be compatible with new plugin release.
  • Type: java.lang.String
  • Since: 1.3
  • Required: No
  • User Property: windowsScriptTemplate