java - 有没有办法在 IntelliJ IDEA 中使用 jlink 来创建自定义模块化运行时映像?
问题描述
我正在关注 IntelliJ IDEA 2018.2.5 中的Project Jigsaw:模块系统快速入门指南。在链接器部分之前,我在 IDE 中做的一切都是正确的。有没有办法在 IntelliJ IDEA 中使用 jlink?
jlink(参见JEP 282)是链接器工具,可用于链接一组模块及其传递依赖项,以创建自定义模块化运行时映像(参见JEP 220)。
- Project Jigsaw:模块系统快速入门指南
我在JetBrains Bug & Issue Tracker中发现了产生 JLink artefacts问题的能力,但它已经开放了 2 年多,甚至没有描述。
作为一种解决方法,我看到了这个Is there a maven jigsaw jlink plugin? 有趣的问题和最有希望的替代方案似乎是Apache Maven JLink 插件,但它也已经存在了 2 年多,还没有发布。
解决方案
您可以使用 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>
推荐阅读
- webpack - Laravel mix.extract(['vue']) “忘记” app.js
- java - 使用 java 11 HttpClient 将响应主体流式传输到流式请求主体
- php - 我有一个 PHP 表单,如何为输入字段指定当前 page_id 的值?
- angular - 如何将表格中特定行的值转移到其他页面
- python - 使用 Python 在 Excel 工作表中查找带下划线的单词
- python - 如何读取 Minecraft .mca 文件以便在 python 中提取单个块?
- python - 如何根据列中的条件进行计算?
- python - 蛮力算法牛运输的问题
- xamarin.forms - Prism 库中的 Application 类是否持久存储数据?
- html - 没有唯一容器时分屏布局的最佳方法