我正在将 Java 桌面应用程序升级到 JDK10,并且需要利用模块来使用javapackager
构建本机包。
一切都很好,直到我使用 Proguard (6.0.2) 添加了一个混淆步骤。一旦我启用了混淆(使用来自 < JDK9 项目的工作 proguard 配置文件),它就会按预期工作,但 Proguardmodule-info.class
从输出 JAR 中删除了,这会阻止javapackager
找到模块。
根据 Proguard 的injars
参数文档
默认情况下,任何非类文件都将被复制而不做任何更改。
这里的问题是 module-info.class
是一个“类”文件(尽管很奇怪)。“保留”规则取决于类名,所以我认为没有任何规则可以用来防止这种删除。
如何让 Proguard 保留module-info.class
文件?