2012-11-22 83 views
1

我有一個帶有類的JAR myapp-logic,其中一些是模糊的,另一些是非模糊的。ProGuard:使用模糊JAR的問題

我想在名爲myapp-web的網絡應用程序中使用myapp-logic。當我的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) 

當我打開混淆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的代碼)?

回答

2

試試看是否有幫助: 在您的Proguard規則中,特別是保持Signature可能會有所幫助。

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

謝謝。是否有一個如何在'pom.xml'文件(ProGuard maven插件的配置)中執行它的例子? –

+0

我不知道這個例子適用於螞蟻。但是你很容易找到ProGuard的主頁。讓我知道這是否有幫助。 Signature需要與Java泛型兼容。 – AlexWien