微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

一次对多个项目进行 Java Proguard 混淆或保存接口包括定义?

如何解决一次对多个项目进行 Java Proguard 混淆或保存接口包括定义?

我正在通过 maven 混淆/优化一个应用程序和一组插件/库(使用 ServiceLoader)。

插件仅在与应用程序相同的代码库中创建/维护,它不是用于第 3 方开发的接口,因此需要进行混淆。

我希望能够混淆插件接口类中包含的应用程序代码。我能想到的唯一方法是同时在应用程序和插件上运行 proguard(或者以某种方式让 proguard 保存应用程序运行信息以在插件编译中使用)。这可能吗?或者,我是否必须不混淆任何包含的代码

我现在正在使用单独的 maven pom 文件来构建应用程序和插件。我可以将 proguard 阶段添加到包含应用程序和插件 poms 的顶级 pom 文件中吗?

这是界面的样子,我希望能够混淆 AppClass1 和 AppClass2,首先在应用上使用 proguard 我不能这样做。

package com.project.app;

public interface RunPlugin {

    public int plugin_function(AppClass1 a1,AppClass2 a2);

}

另外,我想我在技术上需要使用 proguard 生成的 .jar 来编译插件,并且它必须知道实体映射。

我得到的错误很简单且符合预期,

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 参考 - 除了说不要混淆所需的应用程序类之外,找不到任何其他内容

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。