我如何让 proguard 与 sjersey 一起工作?

Posted

技术标签:

【中文标题】我如何让 proguard 与 sjersey 一起工作?【英文标题】:How do I get proguard working with sjersey? 【发布时间】:2015-08-14 19:51:54 【问题描述】:

尝试通过 a fork of SJersey 将 Jersey 与 Scala 一起使用,并使用 ProGuard 对其进行混淆。

这些东西我都有了:

-keepattributes SourceFile,LineNumberTable,*Annotation*,EnclosingMethod,Signature,InnerClasses

我正在这样做:

-keep public class com.example.*JsonSeralisedClasses 
    public *;

但是当我用球衣编码东西时,什么都没有出来!

【问题讨论】:

【参考方案1】:

最终发现 SJersey 不使用公共方法,而是对私有字段进行内省,因此需要这样做:

-keep public class com.example.*JsonSeralisedClasses 
    public protected private *;

请参阅受保护的私人是不同的。

或者,您可以使用 @BeanProperty 注释所有内容(这使得使用原始配置保留的公共访问器)。

【讨论】:

以上是关于我如何让 proguard 与 sjersey 一起工作?的主要内容,如果未能解决你的问题,请参考以下文章

android - 如何让 enum 远离 proguard

如何让 R8 + proguard-android-optimize.txt + Google Drive API 无缝运行?

Maven、Proguard 和组装问题

为啥 proguard 不混淆方法体?

如何使用 xsbt-proguard-plugin 排除/包含特定包?

ProGuard 让 Gson 返回 LinkedTreeMap 而不是我的类型