如何让 ProGuard 以简单的方式工作?

How to make ProGuard work in a simple way?

我在一个简单的应用程序上测试了 ProGuard。它工作得很好。但是,当我尝试在更复杂的东西上使用它时,它会显示所有类型的警告和错误,例如 class 依赖于其他或 class 尝试使用反射等。

这是配置

-injars       Test.jar
-outjars      Test2.jar
-libraryjars  <java.home>/lib/rt.jar    
-libraryjars  <java.home>/lib/jce.jar  
-printmapping myapplication.map 
-keep class com.teradata.** {*;}  
-keep class org.quartz.** {*;}   
-keep class org.terracotta.** {*;}  
-keep class com.sun.** {*;} 
-keep class javax.** {*;} 
-keep class org.apache.** {*;} 
-keep class org.slf4j.** {*;}   
-keep class com.** {*;} 
-keep public class com.test.Main {
    public static void main(java.lang.String[]);
} 

有没有简单的方法让它工作。如果某些东西应该在 -keep 中,它可以自动这样做吗?能处理多少就处理多少,剩下的留着。

我也试过gui版。但我不知道如何 -keep 罐子。

即使没有冗长的关键字也太冗长了。我无法找到问题的根源,因为有大量重复的错误消息,例如 Maybe blah blah,然后又一次又一次地出现同样的错误消息。

有什么简单的方法可以让它正常工作吗?

如果你不想被警告打扰并适当地修复它们(或使用 -dontwarn 指令忽略无害的),你可以使用 -ignorewarnings 指令,它将指示 ProGuard 继续处理您的应用程序,即使仍有一些警告。