有没有办法在 IntelliJ IDEA 中使用 jlink 来创建自定义的模块化运行时映像?

Nic*_*lau 13 java intellij-idea jlink maven java-platform-module-system

我正在关注IntelliJ IDEA 2018.2.5 中的Project Jigsaw:Module System Quick-Start Guide。我在 IDE 中做的一切都是正确的,直到链接器部分。有没有办法在 IntelliJ IDEA 中使用 jlink?

jlink(参见JEP 282)是链接器工具,可用于链接一组模块及其传递依赖,以创建自定义的模块化运行时映像(参见JEP 220)。
- Project Jigsaw:模块系统快速入门指南

我在JetBrains Bug & Issue Tracker 中发现了这个能够产生 JLink 人工制品的问题,但它已经开放了 2 年多,甚至没有描述。


作为一种解决方法,我已经看到了这个是否有 maven jigsaw jlink 插件?有趣的问题和最有前途的替代品似乎是Apache Maven JLink Plugin,但它也已经存在 2 年多了,但尚未发布。

小智 1

您可以使用 Ant 作为构建工具并指定您自己的 jlink 目标,如下所示:

<target name="link">
    <echo message="Creating jlink image in directory = dist\bin\java" />
    <exec executable="jlink">
        <arg line='--module-path bin;"C:\Program Files\Java\jdk-11.0.1-Linux\jmods";"C:\Users\VTorroni\_libs\hsqldb-2.4.1\modules";"C:\Users\VTorroni\_libs\tinylog-1.3.5\module";"C:\Users\VTorroni\_libs\javax.servlet-api-4.0.1\module\javax.servlet.api-4.0.1.jar" --add-modules pnode --output dist\bin\java --strip-debug --no-header-files --no-man-pages --compress=2' />
    </exec>
</target>
Run Code Online (Sandbox Code Playgroud)