Java 带有throws子句的模糊处理方法
我正在使用ProGuard混淆我的代码。我的项目由几个模块组成,每个模块独立地进行模糊处理 一个库包括一个接口Java 带有throws子句的模糊处理方法,java,obfuscation,proguard,Java,Obfuscation,Proguard,我正在使用ProGuard混淆我的代码。我的项目由几个模块组成,每个模块独立地进行模糊处理 一个库包括一个接口 public interface IFace { public int methodA(boolean b) throws CustomException; } 另一个库提供了一个实现 public class IFaceImpl implements IFace { @Override public int methodA(boolean b) throws
public interface IFace {
public int methodA(boolean b) throws CustomException;
}
另一个库提供了一个实现
public class IFaceImpl implements IFace {
@Override
public int methodA(boolean b) throws CustomException {
return 0;
}
}
首先构建带有接口的库,然后根据模糊版本构建第二个库。不幸的是,@Override
上的编译失败,因为接口没有throws子句
我让proguard保留接口及其所有成员,但我不知道如何保留throws子句。我找到了答案
-保留属性异常
使用Maven的示例:
<plugin>
<groupId>com.github.wvengen</groupId>
<artifactId>proguard-maven-plugin</artifactId>
<version>2.0.6</version>
<dependencies>
<dependency>
<groupId>net.sf.proguard</groupId>
<artifactId>proguard-base</artifactId>
<version>4.10</version>
</dependency>
</dependencies>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>proguard</goal>
</goals>
</execution>
</executions>
<configuration>
<proguardVersion>4.10</proguardVersion>
<options>
<option>-keepattributes Exceptions</option>
<option>-keep public class some.package.SomeClass{*;}</option>
</options>
<libs>
<lib>${java.home}/lib/rt.jar</lib>
<lib>${java.home}/lib/jce.jar</lib>
<lib>${java.home}/lib/jsse.jar</lib>
</libs>
</configuration>
</plugin>
com.github.wvengen
proguard maven插件
2.0.6
net.sf.proguard
前卫基地
4.10
包裹
前卫
4.10
-保留特例
-保持公共类some.package.SomeClass{*;}
${java.home}/lib/rt.jar
${java.home}/lib/jce.jar
${java.home}/lib/jsse.jar
谢谢!没有你的回答,这简直是浪费生命。节省了大量的时间。谢谢,最好的答案。拯救了这一天@Cogsy!