ProGuard:使用混淆JAR的问题

时间:2012-11-22 19:18:01

标签: java maven maven-2 obfuscation proguard

我有一个带有类的JAR myapp-logic,其中一些是混淆的,一些是非混淆的。

我想在名为myapp-logic的网络应用程序中使用myapp-web。当我将myapp-logic的模糊版本添加到myapp-web的依赖项时,我收到以下错误消息(当我运行mvn clean compile时):

EntryPageController.java:[55,41] incompatible types
found   : java.lang.Object
required: ru.altruix.ccp.logic.api.simfacade.SimulationFacade

带错误的代码如下所示:

final SimulationFacadeFactory factory = this.injector.getInstance(SimulationFacadeFactory.class);
simulationFacade = factory.create(); // The error occurs here (line 55)

当我用Jad打开混淆的myapp-logic JAR时,SimulationFacadeFactory接口没有被混淆(或者看起来没有被混淆):

enter image description here

原始代码:

package ru.altruix.ccp.logic.api.simfacade;

import ru.altruix.commons.api.conventions.Factory;

public interface SimulationFacadeFactory extends Factory<SimulationFacade> {
}

Eclipse没有显示该错误(它只出现在Maven中)。

我可以做些什么来修复错误(使myapp-web的代码参考模糊myapp-logic进行编译?

1 个答案:

答案 0 :(得分:2)

尝试是否有帮助: 在您的Proguard规则中,特别是保持签名可能会有所帮助。

<keepattribute name="*Annotation*" />
<keepattribute name="Signature" />
<keepattribute name="Exceptions" />