JavaProGuard一次对多个项目进行模糊处理(或保存包含定义的接口)?

ijnw1ujt  于 2021-08-25  发布在  Java
关注(0)|答案(0)|浏览(233)

赏金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关于这样做的参考-除了说不要混淆所需的应用程序类之外,找不到其他任何东西。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题