Вопрос по proguard, obfuscation, java – Запутывающий метод с предложением throws

17

Я использую ProGuard, чтобы запутать свой код. Мой проект состоит из нескольких модулей, каждый из которых запутан независимо.

Одна библиотека включает в себя интерфейс;

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.

Ваш Ответ

2   ответа
40

-keepattributes Exceptions

Лучший ответ. Спасли день @ Cogsy!
Огромная экономия времени. Благодарю.
Благодарю вас! Это была жизнь без твоего ответа.
0

<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>

Похожие вопросы