java - JLink:在单独的文件中导出 java 模块
问题描述
使用 JLink,我能够用一个微型 JVM 构建我的应用程序。目前,构建是整体的:所有的 java 模块都融合在一个文件中(可以用 jimage 提取):
jlinkImage/
└──lib/
└──modules
现在,我想进行增量构建:当我部署我的应用程序时,我只想上传自上次发布以来发生变化的模块。
可以将 JLink 配置为在单独的文件中导出不同的 java 模块吗?
例如
jlinkImage/
└──lib/
└── moduleA
└── moduleB
└── moduleC
解决方案
在深入了解这个问题之后:
粗略的回答是否定的。这不是 JLink 的目的,它只是用来构建一个紧密的 JRE。
但是,JLink 生产的 JRE 仍然可以通过外部模块进行扩展。这里有一个简单的方法来分隔不同文件中的模块:
- 使用 jlink 生成最小的 JRE,例如:
jlink --add-modules java.base,java.xml --output minimalJre
- 在 minimumJre 中添加一些模块 jar:
minimalJre/
└──modules/
└── moduleA
└── moduleB
└── moduleC
- 启动它:
bin/java -p modules/ <other args>
推荐阅读
- python - Telegram Bot 获取用户电话号码
- javascript - How can Babel be used without bundler, but with a dev-experience similar to webpack?
- powershell - For PowerShell cmdlets, can I always pass a script block to a string parameter?
- python-3.x - 如何从 youtube 频道获取所有视频
- android - Unit testing Retrofit calls when service is injected with Dagger 2
- sql - 来自 Hive 格式的表的艰巨选择语句
- unity3d - 过滤器下已经存在sqlite3.dll
- javascript - 为什么分配给“window”的函数和类在 GreaseMonkey 脚本中不相等?
- javascript - 拒绝执行内联脚本 Javascript Chrome 扩展
- java - 不知道如何操作字符串