我正在尝试将proguard配置为仅缩小我的jar并且仅删除包com.faster.xml **,com.amazonaws.javax。,com.amazonaws.org.apache中的字段。 ,org.apache.commons。和org.joda。。为此,我在我的proguard配置中使用了以下内容:
-dontskipnonpubliclibraryclasses
-dontskipnonpubliclibraryclassmembers
-dontobfuscate
-dontoptimize
-dontpreverify
-keepattributes
-keep enum ** { *; }
-keep class !com.fasterxml.**, !com.amazonaws.javax.**,
!com.amazonaws.org.apache.**, !org.apache.commons.**, !org.joda.**,
** { *; }
但是,我注意到指定的命名空间中的内容仍然被删除。罐子似乎仍在工作,但我只想了解它正在做什么。
答案 0 :(得分:1)
您的配置显式保留除指定包中的类,字段和方法之外的所有类,字段和方法。这应该是你想要的。您可以使用
检查配置的效果-printseeds seeds.txt
生成的文件包含显式保留的类,字段和方法的列表。
如果某些类似乎消失了,您应该仔细检查输入目录或输入jar。您还可以检查配置中的-injars
或-outjars
选项是否包含过滤器。