赏金5天后到期。此问题的答案有资格获得+100声誉奖励。bias希望引起更多的注意这个问题:
需要一个实际的工作解决方案。
我正在通过maven混淆/优化一个应用程序和一组插件/库(使用serviceloader)。
插件仅在与应用程序相同的代码库中创建/维护,它不是用于第三方开发的接口,因此需要混淆。
我希望能够混淆插件接口类中包含的应用程序代码。我能想到的唯一方法是同时在应用程序和插件上运行proguard(或者让proguard保存应用程序运行信息,以便在插件编译中使用)。这可能吗?或者,我是否必须不混淆任何包含的代码?
我现在正在使用单独的maven pom文件来构建应用程序和插件。我可以将proguard阶段添加到包含应用程序和插件pom的顶级pom文件中吗?
下面是界面的样子,我希望能够混淆appclass1和appclass2,首先在应用程序上使用proguard,我不能这样做。
package com.project.app;
public interface RunPlugin {
public int plugin_function(AppClass1 a1, AppClass2 a2);
}
另外,我想我在技术上需要使用proguard生成的.jar编译插件,并且它必须知道实体Map。
我得到的错误,是直接的和预期的,是
Caused by: java.lang.AbstractMethodError: Receiver class com.project.dummy.RunCustomPlugin does not define or inherit an implementation of the resolved method 'abstract int plugin_function(com.project.app.o, com.project.app.b)' of interface com.project.app.RunPlugin.
at com.project.app.o.<init>(Unknown Source)
at com.project.app.m.a(Unknown Source)
at com.project.app.m.call(Unknown Source)
抱歉,如果有proguard关于这样做的参考-除了说不要混淆所需的应用程序类之外,找不到其他任何东西。
暂无答案!
目前还没有任何答案,快来回答吧!