gpt4 book ai didi

scala - Proguard 不会删除某些类

转载 作者:行者123 更新时间:2023-12-01 05:17:29 25 4
gpt4 key购买 nike

全部

我正在使用 proguard 来混淆 scala 应用程序。

在这一点上,我很少使用 scala-library,但我的 jar 仍然是 ~300KB,其中 99% 是 scala-library 类。

使用 -whyareyoukeeping 选项,我看到它保留了任何覆盖 java.lang.Object 方法的类,例如“toString”或“equals”。
例如

scala.Some
is invoked by scala.Some.equals (300:300)
implements java.lang.Object.equals
is a library method.

所以 scala.Some 类被保留,尽管我没有在我的代码中使用它。

有没有办法解决这个问题,以便我只保留我在代码中实际使用的类?

谢谢
阿米尔

最佳答案

ProGuard 对 -whyareyoukeeping 的回答不幸的是,有时包含循环推理。不过,收缩操作是正确的。这个类没有被保留,因为它覆盖了 equals(),而是因为它实际上被其他一些需要的类引用了。您可能会通过查询其他类获得更好的印象。

由于传递依赖关系,即使是一小部分 Scala 也可以拖入许多基本类(通常乍一看令人惊讶)。与许多兆字节的原始大小相比,最终的 300k 大小似乎并没有什么不同。

关于scala - Proguard 不会删除某些类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18869394/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com