我成功地使用proguard 4.5.1和proguard-maven-plugin(没有指定版本)来混淆我在JDK 6平台上的webapp。
当我升级到JDK 7平台时,我不得不使用proguard-maven-plugin升级到proguard 4.8 2.1.0-SNAPSHOT我在执行proguard时遇到以下警告的两个实例导致构建失败:
[proguard] Warning: mypackage.MyClass: can't find referenced method 'java.lang.String lookupNamespaceURI(java.lang.String)' in class org.w3c.dom.Node
我已经检查了确定... / jdk1.7.0 / jre / lib / rt.jar被指定为库:
[proguard] Reading library jar [.../jdk1.7.0/jre/lib/rt.jar]
我收到的警告可能与我的问题有关:
[proguard] Note: duplicate definition of library class [org.w3c.dom.Node]
发布了一个类似的问题here,但它无法解决我的问题。
有关如何找出哪个库具有重复定义以及如何解决此问题的任何提示?
答案 0 :(得分:0)
当我从项目中删除以下未使用的依赖项时,我的问题得到了解决:
+- org.swinglabs:swingx-ws:jar:1.0:compile
| | +- xerces:xercesImpl:jar:2.8.1:compile
| | | \- xml-apis:xml-apis:jar:1.3.03:compile
我调试问题根源的方式如下。
最近在该项目中添加了swingx-ws jar,幸好从未实际使用过。所以我所要做的就是删除它。如果我真的不得不使用那个jar,我怀疑我可以排除xml-apis的依赖关系并且仍能使它工作。