在JDK 6平台上,我成功地使用了proguard 4.5.1和proguard-maven-plugin (没有指定的版本)来混淆我的webapp。
当我升级到JDK 7平台时,我必须升级到proguard 4.8,并使用proguard-maven-plugin 2.1.0-快照,我在执行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上发布了一个类似的问题,但这无助于解决我的问题。
关于如何找出哪个库有重复的定义以及如何解决这个问题,有什么建议吗?
发布于 2013-04-17 19:22:40
当我从项目中删除下列未使用的依赖项时,我的问题得到了解决:
+- 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,它从未被实际使用过。所以我要做的就是移除它。如果我真的必须使用那个jar,我怀疑我可以排除xml的依赖,并且仍然可以使事情正常工作。
https://stackoverflow.com/questions/16065830
复制相似问题