使用jlink工具模块化Java应用,结合Docker优化容器镜像(中)

本文介绍了如何使用jlink构建自定义启动程序,以减少模块化Java应用的Docker镜像大小。通过创建模块描述文件并使用jlink,实现了仅包含必要模块的可执行文件,从而减小了镜像体积。同时,讨论了如何通过Maven的ModiTECT插件自动化这个过程,简化了Dockerfile的构建。
摘要由CSDN通过智能技术生成

在开始这篇文章的学习之前,希望您先学习前一篇的内容《使用jlink工具模块化Java应用,结合Docker优化容器镜像(上)》,对jlink和Docker有一个初步了解,会更有助于您理解下面的内容。如果您已经掌握了jlink和Docker的基础内容,请直接往下阅读学习。

构建一个自定义启动程序

       Hello World是一个除了java.base之外不需要其它模块的应用。像java.lang这样的包都是被隐式导入应用的,所以这个模块是被自动导入的。

       为了构建一个更小的定制化可执行文件,第一步就是将应用移植到系统模块中。如前面的描述,jlink可以单独运行模块化后的应用,因为它依赖的是module-info文件。

       因为这个应用只需要java.base模块,所以直接这样创建一个module-info.java描述这个模块:

// module-info.java
module ch.frankel.jlink {
       exports ch.frankel.blog.jlink;
}

       jlink的特点就是优化一个应用,使之只保留将会被使用到的模块。此外,它可以用优化后的应用版本创建一个独立的可执行文件。因为我们的应用现在利用的是系统模块,所以它可以用来创建一个专用的启动程序。但是jlink需要一个现有的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值