如何解决为什么 ProGuard 不从与我配置的相同包中的类重新打包以防止混淆?
我正在使用 com.github.wvengen:proguard-maven-plugin:2.3.1 maven 插件在构建我的项目时混淆我的 jars。除了混淆之外,我还尝试将所有类重新打包到根包中。一切正常,所有类都移到根包中,直到我不得不配置防止类混淆。来自与我试图防止混淆的类相同的包中的类不会移动到根包。我正在使用的配置:
<configuration>
<proguardVersion>7.0.0</proguardVersion>
<injar>${project.build.finalName}.jar</injar>
<outjar>${project.build.finalName}-obf.jar</outjar>
<obfuscate>true</obfuscate>
<mappingFileName>mapping.txt</mappingFileName>
<seedFileName>seeds.txt</seedFileName>
<options>
<option>-dontoptimize</option>
<option>-dontshrink</option>
<option>-dontnote **</option>
<option>-dontwarn **</option>
<option>-repackageclasses</option>
<option>-keep class me.myname.mypkg.Main</option>
</options>
<libs>
<lib>${java.home}/lib/rt.jar</lib>
</libs>
</configuration>
假设我有以下未混淆的 jar:
├─com
│ └─somename
│ └─somepkg
│ ├─otherpkg
│ │ └─OtherClass.class
│ └─SomeClass.class
└─me
└─myname
└─mypkg
├─util
│ └─Util.class
├─Main.class
├─Manager.class
└─MyApp.class
当使用上面的配置通过 ProGuard (7.0.0) 时,我得到以下输出 jar:
├─me
│ └─myname
│ └─mypkg
│ ├─a.class # - MyApp.class
│ ├─A.class # - Manager.class
│ └─Main.class
├─a.class # - OtherClass.class
├─A.class # - SomeClass.class
└─b.class # - Util.class
看看 Main.class 包的类是如何不被移动到根包的?此行为发生在官方 proguard 和 maven 插件上。这是故意的吗?如果是这样,即使我保持类未混淆,我如何仍将所有类移动到根包?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。