YGuard не очень хорош в этой части, но почему бы вам не попробовать ProGaurd?
Вы можете обратиться к разделу примеров ProGaurd (http://proguard.sourceforge.net/index.html#manual/examples.html), который говорит:
Обработка классов bean-компонентов
Если ваше приложение, апплет, сервлет, библиотека и т. Д. Широко используют интроспекцию классов bean-компонентов для поиска классов редактора bean-компонентов или методов получения и установки, затем конфигурированиеможет стать болезненным. Нет ничего другого, что вы можете сделать, кроме как убедиться, что имена классов бинов или имена получателей и установщиков не меняются. Например:
-keep public class mypackage.MyBean {
public void setMyProperty(int);
public int getMyProperty();
}
-keep public class mypackage.MyBeanEditor
Если в списке слишком много элементовявно, подстановочные знаки в именах классов и сигнатурах методов могут быть полезны. Этот пример должен охватывать все возможные установщики и получатели в классах в пакете mybeans:
-keep class mybeans.** {
void set*(***);
void set*(int, ***);
boolean is*();
boolean is*(int);
*** get*();
*** get*(int);
}
Подстановочный знак '***' соответствует любому типу (примитивили не примитив, массив или не массив.) Методы с аргументами 'int' соответствуют свойствам, которые являются списками.
, и если вы также используетеe аннотации в вашем приложении:
Внедрение ресурсов обработки
Если ваше приложение использует внедрение ресурсов в стиле Java EE, контейнер приложения автоматически назначит экземплярыклассы ресурсов для полей и методов, аннотированных @Resource.Контейнер применяет самоанализ, даже напрямую обращаясь к членам частного класса.Обычно он создает имя ресурса на основе имени типа и имени члена класса.Затем мы должны избегать удаления или переименования таких членов класса:
-keepclassmembers class * {
@javax.annotation.Resource *;
}
. У среды Spring есть другая похожая аннотация @Autowired:
-keepclassmembers class * {
@org.springframework.beans.factory.annotation.Autowired *;
}