我正试图让Proguard混淆一个简单的.war文件。根据文档Proguard处理.war文件,但是当我尝试时我得到了这个:
Warning: class [WEB-INF/classes/com/corp/gr/t2b/T2BChannel.class] unexpectedly contains class [com.corp.gr.t2b.T2BChannel]
文档提到了一些关于Proguard并不喜欢带有WEB-INF / classes目录中的类的.war文件的内容。所以我将所有.class文件放在WEB-INF / lib中的.jar文件中。
然后Proguard抱怨它找不到任何JavaEE 6类,即使我已经给它带了
的javaee.jar文件-libraryjars C:/bin/glassfish-3.0.1/.../lib/javaee.jar
所以我解析了javaee.jar文件中的所有条目MANIFEST.MF并添加了多个
-libraryjars C:/bin/glassfish-3.0.1/.../modules/javax.servlet.jar
语句。
Proguard表示它正在读取各种库jar,然后滚动成千上万的“库类重复定义”消息和其他一些消息。 (消息未被记录,因此它们只是滚动屏幕。)在所有这些消息结束时,它完成
Note: there were 965 duplicate class definitions.
Warning: there were 816 classes in incorrectly named files.
还有数百个(或数千个 - 我无法分辨 - 因为这些不能重定向到文件)形式的警告
Warning: class [1.0/org/apache/xml/resolver/tools/ResolvingXMLReader.class] unex
pectedly contains class [org.apache.xml.resolver.tools.ResolvingXMLReader]
所以Proguard似乎无法处理JavaEE 6库。
有没有人让Proguard使用JavaEE 6应用程序?您需要做些什么才能使它与JavaEE 6库一起使用?