【问题标题】:Is there any way to use jlink in IntelliJ IDEA to create a custom modular run-time image?有没有办法在 IntelliJ IDEA 中使用 jlink 来创建自定义模块化运行时映像?
【发布时间】:2019-04-13 07:18:22
【问题描述】:

我正在关注 IntelliJ IDEA 2018.2.5 中的 Project Jigsaw: Module System Quick-Start Guide。在 The linker 部分之前,我在 IDE 中做的一切都是正确的。 有什么方法可以在 IntelliJ IDEA 中使用 jlink 吗?

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

我在 JetBrains Bug & Issue Tracker 中发现了这个 Ability to produce JLink artefacts 问题,但它已经开放 2 年多了,甚至没有描述。


作为一种解决方法,我看到了这个Is there a maven jigsaw jlink plugin? 有趣的问题,最有希望的替代方案似乎是Apache Maven JLink Plugin,但它也已经存在了2 年多,还没有发布。

【问题讨论】:

  • 因为您已经链接到我回答的问题之一(也在那里更新)。你试过maven-jlink-plugin:3.0.0-alpha-1 吗?我相信,在将其转移到发布之前,反馈是一个关键方面。答案中链接的博客应该可以帮助您完成这个过程。
  • 感谢@nullpointer。我还没有真正尝试过这个插件,我只是开始尝试从版本 9 开始的新 Java 功能。问题是 如何在 IntelliJ IDEA 中使用 jlink,我只是想到了 Maven作为 IDE 中的替代方案,我很失望没有找到稳定的解决方案。即使根据文档,该插件的当前版本也需要 JDK 9,而最新版本是 11。
  • 通过 IntelliJ 使用 jlink 的确切问题似乎已通过您在问题中分享给我的链接得到回答(我们可以等待 IntelliJ 的贡献者实际确认。)关于插件,您可以进一步跟踪实际source repository and contribute中的更新。

标签: java maven intellij-idea java-platform-module-system jlink


【解决方案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>

【讨论】:

    猜你喜欢
    • 2015-04-19
    • 1970-01-01
    • 2019-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多