首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用jlink的可重复构建

使用jlink的可重复构建
EN

Stack Overflow用户
提问于 2020-09-02 16:30:00
回答 1查看 69关注 0票数 2

简化的JDK (使用jlink创建)是我们应用程序的一部分。JDK镜像所需的模块很少更改。不幸的是,生成新的JDK镜像(使用完全相同的jlink参数)会产生不同的输出,因此在差异升级期间,客户端必须一次又一次地下载相同的文件,这是不必要的。

这是一个PoC:

代码语言:javascript
复制
$ mkdir jdk-15a jdk-15b
$ tar xzf openjdk-15_linux-x64_bin.tar.gz --directory jdk-15a/
$ tar xzf openjdk-15_linux-x64_bin.tar.gz --directory jdk-15b/
$ jdk-15a/jdk-15/bin/jlink --compress=1 --module-path jdk-15a/jdk-15/jmods --add-modules java.base,jdk.management,jdk.unsupported,jdk.charsets --output output01
$ jdk-15b/jdk-15/bin/jlink --compress=1 --module-path jdk-15b/jdk-15/jmods --add-modules java.base,jdk.management,jdk.unsupported,jdk.charsets --output output02
$ md5sum output*/lib/modules
9ae5ae63df59593a0892c5ed411d7e59  output01/lib/modules
24b4af31553670799ab286ad1186329e  output02/lib/modules

(我使用的jdk-15ajdk-15b目录类似于多个构建服务器上的JDK实例。)

在这种情况下,有没有办法从jlink获取byte-to-byte identical output (reproducible build)

使用的JDK版本:

代码语言:javascript
复制
$ cat jdk-15a/jdk-15/release 
IMPLEMENTOR="Oracle Corporation"
JAVA_VERSION="15"
JAVA_VERSION_DATE="2020-09-15"
...
OS_ARCH="x86_64"
OS_NAME="Linux"
SOURCE=".:hg:e3f940bd3c8f"
EN

回答 1

Stack Overflow用户

发布于 2020-09-03 19:24:44

这是一个JDK bug,在JDK-8252730上报告过。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63701637

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档