bia*_*ias 6 java plugins proguard maven serviceloader
我正在通过 maven 混淆/优化一个应用程序和一组插件/库(使用 ServiceLoader)。
插件仅在与应用程序相同的代码库中创建/维护,它不是用于 3rd 方开发的接口,因此需要进行混淆。
我希望能够混淆插件接口类中包含的 App 代码。我能想到的唯一方法是同时在应用程序和插件上运行 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);
}
Run Code Online (Sandbox Code Playgroud)
另外,我想我在技术上需要使用 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)
Run Code Online (Sandbox Code Playgroud)
抱歉,如果有关于这样做的 proguard 参考 - 除了说不要混淆所需的应用程序类之外,找不到任何其他内容。
| 归档时间: |
|
| 查看次数: |
66 次 |
| 最近记录: |