jlink:jlink

全名

org.apache.maven.plugins:maven-jlink-plugin:3.1.0:jlink

说明

JLink 目标旨在创建基于https://openjdk.java.net/jeps/282https://openjdk.java.net/jeps/220的 Java 运行时映像文件。

属性

  • 需要执行一个 Maven 项目。
  • 需要范围内工件的依赖关系解析:runtime.
  • 默认绑定到生命周期阶段package.

可选参数

姓名 类型 自从 描述
<addModules> List -

通常这不是必需的,因为这是由给定的依赖项自动处理的。

通过使用 --add-modules 您可以定义要解析的根模块。文件中的配置pom.xml可能如下所示:

<addModules>
  <addModule>mod1</addModule>
  <addModule>first</addModule>
  .
  .
</addModules>
jlink 的命令行等效项是:--add-modules <mod>[,<mod>...].
<addOptions> List - 这些 JVM 参数将附加到 lib/modules文件中。
此参数至少需要 JDK 14。

等效的命令行是:jlink --add-options="...".

例子:

  <addOptions>
    <addOption>-Xmx256m</addOption>
    <addOption>--enable-preview</addOption>
    <addOption>-Dvar=value</addOption>
  </addOptions>

上面的示例将导致jlink --add-options="-Xmx256m" --enable-preview -Dvar=value".


<bindServices> boolean - --bind-services添加或不添加选项。
默认值为false
<classifier> String - 添加到生成的工件的分类器。如果给出,该工件将作为补充工件附加。如果没有给出,这将创建作为默认行为的主要工件。如果您在不使用分类器的情况下再次尝试这样做,则构建将失败。
<compress> Integer - 您可以在此处定义正在使用的资源的压缩。等效的命令行是:-c, --compress=level>. 该级别的有效值为: 0, 1, 2
<disablePlugin> String - 您可以使用此选项禁用插件。 --disable-plugin pluginName.
<endian> String - 生成的 Java 运行时映像的字节顺序。--endian <little|big>. 如果未给出字节序,则默认值为:native.
<ignoreSigningInformation> boolean - --ignore-signing-information
默认值为false
<includeLocales> List - 包括 langtag 是 BCP 47 语言标签的语言环境列表。

此选项支持 RFC 4647 中定义的区域匹配。确保在使用此选项时添加模块 jdk.localedata。

等效的命令行是: --include-locales=en,ja,*-IN.

<includeLocales>
  <includeLocale>en</includeLocale>
  <includeLocale>ja</includeLocale>
  <includeLocale>*-IN</includeLocale>
  .
  .
</includeLocales>

<jdkToolchain> Map -

指定此 jdk 工具链的要求。这会否决 maven-toolchain-plugin 选择的工具链。

注意:至少需要 Maven 3.3.1
<launcher> String - 插件是否应该通过 jlink 生成启动器脚本?等效的命令行是:--launcher <name>=<module>[/<mainclass>]. 该级别的有效值为: <name>=<module>[/<mainclass>]
<limitModules> List - 限制可观察模块的范围。下面给出了可以在 pom.xml文件中使用的配置示例。

  <limitModules>
    <limitModule>mod1</limitModule>
    <limitModule>xyz</limitModule>
    .
    .
  </limitModules>
此配置等效于命令行选项: --limit-modules <mod>[,<mod>...]
<modulePaths> List - --module-path在选项中包含其他路径。项目依赖项和 JDK 模块会自动添加。
<noHeaderFiles> boolean - 这将禁止includes在生成的 Java 运行时映像中有一个目录。JLink 命令行等效项是:--no-header-files
默认值为: false
<noManPages> boolean - 这将禁止man在生成的 Java 运行时映像中拥有该目录。JLink 命令行等效项是:--no-man-pages
默认值为: false
<pluginModulePath> String - 定义要使用的插件模块路径。可以定义多个条目,由;或 分隔:。jlink 命令行等效项是: --plugin-module-path <modulepath>
<sourceJdkModules> File - 设置 JDK 位置以创建 Java 自定义运行时映像。
<stripDebug> boolean - 这是为了去除调试信息。命令行等效于jlink-G, --strip-debug strip debug information。
默认值为false
<suggestProviders> List - 建议从模块路径实现给定服务类型的提供者。
<suggestProviders>
  <suggestProvider>name-a</suggestProvider>
  <suggestProvider>name-b</suggestProvider>
  .
  .
</suggestProviders>
jlink 命令 linke 等效:--suggest-providers [<name>,...]
<verbose> boolean - 这将打开详细模式。jlink 命令行等效项为:--verbose
默认值为: false

参数详情

<添加模块>

通常这不是必需的,因为这是由给定的依赖项自动处理的。

通过使用 --add-modules 您可以定义要解析的根模块。文件中的配置pom.xml可能如下所示:

<addModules>
  <addModule>mod1</addModule>
  <addModule>first</addModule>
  .
  .
</addModules>
jlink 的命令行等效项是:--add-modules <mod>[,<mod>...].
  • 类型java.util.List
  • 必需No

<添加选项>

这些 JVM 参数将附加到 lib/modules文件中。
此参数至少需要 JDK 14。

等效的命令行是:jlink --add-options="...".

例子:

  <addOptions>
    <addOption>-Xmx256m</addOption>
    <addOption>--enable-preview</addOption>
    <addOption>-Dvar=value</addOption>
  </addOptions>

上面的示例将导致jlink --add-options="-Xmx256m" --enable-preview -Dvar=value".

  • 类型java.util.List
  • 必需No

<绑定服务>

--bind-services添加或不添加选项。
  • 类型boolean
  • 必需No
  • 默认false

<分类器>

添加到生成的工件的分类器。如果给出,该工件将作为补充工件附加。如果没有给出,这将创建作为默认行为的主要工件。如果您在不使用分类器的情况下再次尝试这样做,则构建将失败。
  • 类型java.lang.String
  • 必需No

<压缩>

您可以在此处定义正在使用的资源的压缩。等效的命令行是:-c, --compress=level>. 该级别的有效值为: 0, 1, 2
  • 类型java.lang.Integer
  • 必需No

<禁用插件>

您可以使用此选项禁用插件。 --disable-plugin pluginName.
  • 类型java.lang.String
  • 必需No

<字节序>

生成的 Java 运行时映像的字节顺序。--endian <little|big>. 如果未给出字节序,则默认值为:native.
  • 类型java.lang.String
  • 必需No

<忽略签名信息>

--ignore-signing-information
  • 类型boolean
  • 必需No
  • 默认false

<包括区域设置>

包括 langtag 是 BCP 47 语言标签的语言环境列表。

此选项支持 RFC 4647 中定义的区域匹配。确保在使用此选项时添加模块 jdk.localedata。

等效的命令行是: --include-locales=en,ja,*-IN.

<includeLocales>
  <includeLocale>en</includeLocale>
  <includeLocale>ja</includeLocale>
  <includeLocale>*-IN</includeLocale>
  .
  .
</includeLocales>
  • 类型java.util.List
  • 必需No

<jdk工具链>

指定此 jdk 工具链的要求。这会否决 maven-toolchain-plugin 选择的工具链。

注意:至少需要 Maven 3.3.1
  • 类型java.util.Map
  • 必需No

<启动器>

插件是否应该通过 jlink 生成启动器脚本?等效的命令行是:--launcher <name>=<module>[/<mainclass>]. 该级别的有效值为: <name>=<module>[/<mainclass>]
  • 类型java.lang.String
  • 必需No

<limitModules>

限制可观察模块的范围。下面给出了可以在 pom.xml文件中使用的配置示例。

  <limitModules>
    <limitModule>mod1</limitModule>
    <limitModule>xyz</limitModule>
    .
    .
  </limitModules>
此配置等效于命令行选项: --limit-modules <mod>[,<mod>...]
  • 类型java.util.List
  • 必需No

<模块路径>

--module-path在选项中包含其他路径。项目依赖项和 JDK 模块会自动添加。
  • 类型java.util.List
  • 必需No

<noHeaderFiles>

这将禁止includes在生成的 Java 运行时映像中有一个目录。JLink 命令行等效项是:--no-header-files
  • 类型boolean
  • 必需No
  • 默认false

<noManPages>

这将禁止man在生成的 Java 运行时映像中拥有该目录。JLink 命令行等效项是:--no-man-pages
  • 类型boolean
  • 必需No
  • 默认false

<插件模块路径>

定义要使用的插件模块路径。可以定义多个条目,由;或 分隔:。jlink 命令行等效项是: --plugin-module-path <modulepath>
  • 类型java.lang.String
  • 必需No

<sourceJdkModules>

设置 JDK 位置以创建 Java 自定义运行时映像。
  • 类型java.io.File
  • 必需No

<带调试>

这是为了去除调试信息。命令行等效于jlink-G, --strip-debug strip debug information。
  • 类型boolean
  • 必需No
  • 默认false

<建议提供者>

建议从模块路径实现给定服务类型的提供者。
<suggestProviders>
  <suggestProvider>name-a</suggestProvider>
  <suggestProvider>name-b</suggestProvider>
  .
  .
</suggestProviders>
jlink 命令 linke 等效:--suggest-providers [<name>,...]
  • 类型java.util.List
  • 必需No

<详细>

这将打开详细模式。jlink 命令行等效项是:--verbose
  • 类型boolean
  • 必需No
  • 默认false