问题描述
我正在使用 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 (将#修改为@)