jmod:create

Full name:

org.apache.maven.plugins:maven-jmod-plugin:3.0.0:create

Description:

The create goal is intended to create jmod files which can be used for later linking via maven-jlink-plugin. The jmod files can not be used as usual dependencies on the classpath only in relationship with maven-jlink-plugin.

Attributes:

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

Optional Parameters

Name Type Since Description
<cmds> List<String> - Specifies one or more directories containing native commands to be copied. The given directories are relative to the current base directory. If no entry is defined the default is src/main/cmds used.
<cmds>
  <cmd>...</cmd>
  <cmd>...</cmd>
  .
  .
</cmds>

All files from those directories will be copied into the resulting directory bin within the jmod file.

JMod command line equivalent: --cmds <path>.
<configs> List<String> - Specifies one or more directories containing configuration files to be copied. Location of user-editable config files. If no configuration is given the src/main/configs location is used as default. If this directory does not exist the whole will be ignored.
<configs>
  <config>...</config>
  <config>...</config>
  .
  .
</configs>

All files from those directories will be copied into the resulting directory config within the jmod file.

jmod command line equivalent: --config <path>.
<doNotResolveByDefault> boolean - --do-not-resolve-by-default Exclude from the default root set of modules
Default: false
<excludes> List<String> - Exclude files matching the pattern list. Each element using one the following forms: <glob-pattern>, glob:<glob-pattern> or regex:<regex-pattern>
<excludes>
  <exclude>...</exclude>
  <exclude>...</exclude>
  .
  .
</excludes>
<headerFiles> List<String> - Define the locations of header files. The default location is src/main/headerfiles. If the the default location does not exist in the current project it will be ignored. The given directories are relative to the project base directory. If an entry is defined the definition of all locations is needed.
<headerFiles>
  <headerFile>...</headerFile>
  <headerFile>...</headerFile>
  .
  .
</headerFiles>

All files from those directories will be copied into the resulting directory includes within the jmod file.

jmod command line equivalent --header-files <path>
<jdkToolchain> Map<String,String> -

Specify the requirements for this JDK toolchain. This overrules the toolchain selected by the maven-toolchain-plugin.

note: requires at least Maven 3.3.1
<legalNotices> List<String> - Define the location of legal notices. The default location is src/main/legalnotices. The given man pages locations are relative to the project base directory.
<legalNotices>
  <legalNotice>...</legalNotice>
  <legalNotice>...</legalNotice>
  .
  .
</legalNotices>

All files from those directories will be copied into the resulting directory legal within the jmod file.

jmod command line equivalent --legal-notices <path>
<libs> List<String> - Specifies one or more directories containing native libraries to be copied (The given directories are relative to project base directory). If no configuration is given in < > file the location src/main/libs will be used. If the default location does not exist the whole configuration will be ignored.
<libs>
  <lib>...</lib>
  <lib>...</lib>
  .
  .
</libs>

All files from those directories will be copied into the resulting directory lib within the jmod file.

<mainClass> String - Define the main class which is recorded in the module-info.class file.
<manPages> List<String> - Define the locations of man pages. The default location is src/main/manpages. The given man pages locations are relative to the project base directory.
<manPages>
  <manPage>...</manPage>
  <manPage>...</manPage>
  .
  .
</manPages>

All files from those directories will be copied into the resulting directory man within the jmod file.

jmod command line equivalent --man-pages <path>
<moduleVersion> String - Define the module version of the jmod file.
Default: ${project.version}
<targetPlatform> String - --target-platform <target-platform> Target platform TODO: Which values are valid?
<warnIfResolved> String - Hint for a tool to issue a warning if the module is resolved. The valid values are:
  • deprecated
  • deprecated-for-removal
  • incubating

Parameter Details

<cmds>

Specifies one or more directories containing native commands to be copied. The given directories are relative to the current base directory. If no entry is defined the default is src/main/cmds used.
<cmds>
  <cmd>...</cmd>
  <cmd>...</cmd>
  .
  .
</cmds>

All files from those directories will be copied into the resulting directory bin within the jmod file.

JMod command line equivalent: --cmds <path>.
  • Type: java.util.List<java.lang.String>
  • Required: No

<configs>

Specifies one or more directories containing configuration files to be copied. Location of user-editable config files. If no configuration is given the src/main/configs location is used as default. If this directory does not exist the whole will be ignored.
<configs>
  <config>...</config>
  <config>...</config>
  .
  .
</configs>

All files from those directories will be copied into the resulting directory config within the jmod file.

jmod command line equivalent: --config <path>.
  • Type: java.util.List<java.lang.String>
  • Required: No

<doNotResolveByDefault>

--do-not-resolve-by-default Exclude from the default root set of modules
  • Type: boolean
  • Required: No
  • Default: false

<excludes>

Exclude files matching the pattern list. Each element using one the following forms: <glob-pattern>, glob:<glob-pattern> or regex:<regex-pattern>
<excludes>
  <exclude>...</exclude>
  <exclude>...</exclude>
  .
  .
</excludes>
  • Type: java.util.List<java.lang.String>
  • Required: No

<headerFiles>

Define the locations of header files. The default location is src/main/headerfiles. If the the default location does not exist in the current project it will be ignored. The given directories are relative to the project base directory. If an entry is defined the definition of all locations is needed.
<headerFiles>
  <headerFile>...</headerFile>
  <headerFile>...</headerFile>
  .
  .
</headerFiles>

All files from those directories will be copied into the resulting directory includes within the jmod file.

jmod command line equivalent --header-files <path>
  • Type: java.util.List<java.lang.String>
  • Required: No

<jdkToolchain>

Specify the requirements for this JDK toolchain. This overrules the toolchain selected by the maven-toolchain-plugin.

note: requires at least Maven 3.3.1
  • Type: java.util.Map<java.lang.String, java.lang.String>
  • Required: No

<legalNotices>

Define the location of legal notices. The default location is src/main/legalnotices. The given man pages locations are relative to the project base directory.
<legalNotices>
  <legalNotice>...</legalNotice>
  <legalNotice>...</legalNotice>
  .
  .
</legalNotices>

All files from those directories will be copied into the resulting directory legal within the jmod file.

jmod command line equivalent --legal-notices <path>
  • Type: java.util.List<java.lang.String>
  • Required: No

<libs>

Specifies one or more directories containing native libraries to be copied (The given directories are relative to project base directory). If no configuration is given in < > file the location src/main/libs will be used. If the default location does not exist the whole configuration will be ignored.
<libs>
  <lib>...</lib>
  <lib>...</lib>
  .
  .
</libs>

All files from those directories will be copied into the resulting directory lib within the jmod file.

  • Type: java.util.List<java.lang.String>
  • Required: No

<mainClass>

Define the main class which is recorded in the module-info.class file.
  • Type: java.lang.String
  • Required: No

<manPages>

Define the locations of man pages. The default location is src/main/manpages. The given man pages locations are relative to the project base directory.
<manPages>
  <manPage>...</manPage>
  <manPage>...</manPage>
  .
  .
</manPages>

All files from those directories will be copied into the resulting directory man within the jmod file.

jmod command line equivalent --man-pages <path>
  • Type: java.util.List<java.lang.String>
  • Required: No

<moduleVersion>

Define the module version of the jmod file.
  • Type: java.lang.String
  • Required: No
  • Default: ${project.version}

<targetPlatform>

--target-platform <target-platform> Target platform TODO: Which values are valid?
  • Type: java.lang.String
  • Required: No

<warnIfResolved>

Hint for a tool to issue a warning if the module is resolved. The valid values are:
  • deprecated
  • deprecated-for-removal
  • incubating
  • Type: java.lang.String
  • Required: No