appassembler-maven-plugin

袁山
2023-12-01

http://mojo.codehaus.org/appassembler/appassembler-maven-plugin/assemble-mojo.html#extraJvmArguments

appassembler:assemble

Full name:

org.codehaus.mojo:appassembler-maven-plugin:1.3: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.
  • Binds by default to the lifecycle phase: package.

Required Parameters

NameTypeSinceDescription
assembleDirectoryFile-The directory that will be used to assemble the artifacts in and place the bin scripts.
Default value is: ${project.build.directory}/appassembler.
programsSet-The set of Programs that bin files will be generated for.

Optional Parameters

NameTypeSinceDescription
binFileExtensionsMap1.1The 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>
binFolderString1.2Define the name of binary folder.
Default value is: bin.
configurationDirectoryString-The name of the target directory for configuration files.
Default value is: etc.
configurationSourceDirectoryFile1.1The name of the source directory for configuration files.
Default value is: src/main/config.
copyConfigurationDirectoryboolean1.1If the source configuration directory should be copied to the configured configurationDirectory.
Default value is: false.
environmentSetupFileNameString-Setup file in $BASEDIR/bin to be called prior to execution.
extraJvmArgumentsString-Extra arguments that will be given to the JVM verbatim. If you define JvmSettings on theProgram.setJvmSettings() level this part will be overwritten by the given parameters on program level. Otherwise ifProgram.setJvmSettings() is not given these settings will be used instead. This can be used to define some default values whereas by using theProgram.setJvmSettings() to overwrite the default settings. This is only valid for the extraJvmArguments not for the rest of theJvmSettings. Since 1.2 it's possible to use place holder @BASEDIR@ and@REPO@ which will be expanded based on the platform for which the appropriate script will generated.
generateRepositoryboolean-Set to false to skip repository generation.
Default value is: true.
includeConfigurationDirectoryInClasspathboolean-If the configurationDirectory (etc by default) should be included in the beginning of the classpath in the generated bin files.
Default value is: true.
licenseHeaderFileFile1.2You can define a license header file which will be used instead the default header in the generated scripts.
platformsSet-The default platforms the plugin will generate bin files for. Configure with string values - "all"(default/empty) | "windows" | "unix".
projectArtifactFirstInClassPathboolean1.2.1This 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.
repositoryLayoutString-The layout of the generated Maven repository. Supported types - "default" (Maven2) | "legacy" (Maven1) | "flat" (flatlib/ style). The style "legacy" is only supported if you are running under Maven 2.2.1 and before.
Default value is: default.
repositoryNameString-Path (relative to assembleDirectory) of the desired output repository.
Default value is: repo.
showConsoleWindowboolean-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.
unixScriptTemplateString1.3The unix template of the generated script. It can be a file or resource path. If not given, an internal one is used. Use with case since it not guaranteed to be compatible with new plugin release
useAllDependenciesboolean1.2.1Deprecated. Use useallProjectDependencies instead.
Default value is: false.
useAllProjectDependenciesboolean1.2.3The following can be used to use all project dependencies instead of the default behavior which representsruntime dependencies only.
Default value is: false.
useAsterikClassPathboolean1.2.2Deprecated. Use useWildcardClassPath instead.
Default value is: false.
useTimestampInSnapshotFileNameboolean1.3For those snapshots download from remote repo, replace the timestamp part with "SNAPSHOT" instead
Default value is: true.
useWildcardClassPathboolean1.2.3Sometimes it happens that you have many dependencies which means in other words having a very long classpath. And sometimes the classpath becomes too long (in particular on Windows based platforms). This option can help in such situation. If you activate that your classpath contains only a classpath wildcard (REPO/*). But be aware that this works only in combination with Java 1.6 and above and withrepositoryLayout flat. Otherwise this configuration will not work.
Default value is: false.
windowsScriptTemplateString1.3The windows template of the generated script. It can be a file or resource path. If not given, an internal one is used. Use with case since it is not guaranteed to be compatible with new plugin release

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
  • Expression: ${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.
  • Type: java.lang.String
  • Required: No
  • Default: etc

configurationSourceDirectory:

The name of 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
  • Required: No
  • Default: false

environmentSetupFileName:

Setup file in $BASEDIR/bin to be called prior to execution.
  • Type: java.lang.String
  • 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 holder @BASEDIR@ and @REPO@ which will be expanded based on the platform for which the appropriate script will generated.
  • Type: java.lang.String
  • Required: No

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

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

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

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 case since it not guaranteed to be compatible with new plugin release
  • Type: java.lang.String
  • Since: 1.3
  • Required: No
  • Expression: ${unixScriptTemplate}

useAllDependencies:

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

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

useAsterikClassPath:

Deprecated. Use useWildcardClassPath instead.
Sometimes it happens that you have many dependencies which means in other words having a very long classpath. And sometimes the classpath becomes too long (in particular on Windows based platforms). This option can help in such situation. If you activate that your classpath contains only a classpath wildcard (REPO/*). But be aware that this works only in combination with Java 1.6 and with repositoryLayout flat. Otherwise this configuration will not work.
  • Type: boolean
  • Since: 1.2.2
  • Required: No
  • Default: false

useTimestampInSnapshotFileName:

For those snapshots download from remote repo, replace the timestamp part with "SNAPSHOT" instead
  • Type: boolean
  • Since: 1.3
  • Required: No
  • Default: true

useWildcardClassPath:

Sometimes it happens that you have many dependencies which means in other words having a very long classpath. And sometimes the classpath becomes too long (in particular on Windows based platforms). This option can help in such situation. If you activate that 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. Otherwise this configuration will not work.
  • Type: boolean
  • Since: 1.2.3
  • 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 case since it is not guaranteed to be compatible with new plugin release
  • Type: java.lang.String
  • Since: 1.3
  • Required: No
  • Expression: ${unixScriptTemplate}

 

================example

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>appassembler-maven-plugin</artifactId>
    <version>1.1.1</version>
    <executions>
     <execution>
      <!-- new gateway start script -->
      <id>new-start-script</id>
      <phase>prepare-package</phase>
      <configuration>
       <assembleDirectory>${project.build.directory}</assembleDirectory>
       <extraJvmArguments>-Xms256m -Xmx512m -Dapp.name=${SERVER_NAME}_svr -Dlogfile=$LOGFILE
       </extraJvmArguments>
       <repositoryName>lib</repositoryName>
       <repositoryLayout>flat</repositoryLayout>
       <configurationDirectory>config</configurationDirectory>
       <copyConfigurationDirectory>false</copyConfigurationDirectory>
       <includeConfigurationDirectoryInClasspath>true</includeConfigurationDirectoryInClasspath>
       <binFileExtensions>
        <unix>.sh</unix>
       </binFileExtensions>
       <platforms>
        <platform>unix</platform>
       </platforms>
       <programs>
        <program>
         <name>start0</name>
         <mainClass>gravity.framework.core.ApplicationContextGateway</mainClass>
         <platforms>
          <platform>windows</platform>
          <platform>unix</platform>
         </platforms>
        </program>
       </programs>
      </configuration>
      <goals>
       <goal>assemble</goal>
      </goals>
     </execution>
    </executions>
   </plugin>

 类似资料: