【问题标题】:Proguard obfuscation of multi jar project多jar项目的Proguard混淆
【发布时间】:2015-08-11 05:30:28
【问题描述】:

我已经成功地使用 Maven 配置 Proguard 来混淆一个 jar 及其依赖的 jar。我设法让两种混淆都使用相同的映射文件,以便一个 jar 可以调用另一个 jar 的方法。我面临的问题是,Proguard 没有在混淆的 jar 中保留唯一名称;两个混淆的 jar 都包含一个名为

的类
f.b.class

由于有两个名为 f.b.class 的类(每个 jar 中一个),因此优先考虑调用 jar 中的类,这会导致问题。

以前有没有人经历过这种情况,您是否知道解决方案。目前我正在使用

-keeppackagenames

切换以确保包层次结构保持不同,以免任何重复的类名发生冲突。理想情况下,我想删除所有包名

开关

-useuniqueclassmembernames

也已应用,但它显然仅将其应用于当前被混淆的 jar。它看起来并不像以前混淆过的罐子,以确保罐子之间的唯一性。

谢谢

【问题讨论】:

    标签: java proguard


    【解决方案1】:

    为了解决这个问题,我最终使用了 -keeppackagenames 选项。这不是一个解决方案,而是一种变通方法。

    【讨论】:

    • 即使我的项目中有多个 jars 并且它是一个 sprint 项目。由于重复的类具有相同的名称,例如 a、b 等,bean 名称的重复会影响 sprint 容器的出现.为了避免这种情况,我使用了 -keepnames class package1 -keepnames class package2.. 这样类名就不会被混淆。还有比这更好的解决方案吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-04-22
    • 2011-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-11
    • 2013-06-07
    相关资源
    最近更新 更多