Привет, я использую задачу yguard ant для обфускации моего проекта, это хорошо сочетается с переименованием моих классов java и соответствующего компонента в весенних xml-файлах, но поскольку методы getter и setter также переименован в java, имена свойств в пружинной инъекции не совпадают. Поэтому я не могу продолжить. может ли кто-нибудь сказать мне, как исключить сеттеров и геттеров из обфускации?Как управлять Spring Getters и Setters Obfuscation в yguard
ответ
YGuard не очень хорош в этой части, но почему бы вам не попробовать ProGaurd?
Вы можете обратиться к ProGaurd примеры раздела (http://proguard.sourceforge.net/index.html#manual/examples.html), которые говорят:
Обработка боб классы
Если приложение, апплет, сервлет, библиотека и т.д., широко используют интроспекции на бобе классы, чтобы найти классы редактора компонентов, методы getter и setter, тогда конфигурация может стать болезненной. Больше нечего делать, кроме того, что имена классов 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' соответствуют свойствам, которые являются списками.
и если вы также использовать аннотации в вашем приложении:
инъекций Обработка ресурсов
Если ваше приложение использует Java EE-стиль инъекции ресурсов, контейнер приложение будет автоматически назначать экземпляры ресурса классы к полям и методам, которые аннотируются с помощью @Resource. Контейнер применяет интроспекцию, даже доступ к частным членам класса напрямую. Он обычно создает имя ресурса на основе имени типа и имени члена класса. Затем мы должны избегать, что такие члены класса будут удалены или переименованы:
-keepclassmembers class * {
@javax.annotation.Resource *;
}
Каркас Spring имеет другой аналогичный аннотацию @Autowired:
-keepclassmembers class * {
@org.springframework.beans.factory.annotation.Autowired *;
}
- 1. Spring obfuscation
- 2. Java obfuscation - ProGuard/yGuard/другое?
- 3. Возможно ли управлять журналами через Obfuscation с помощью yGuard?
- 4. PreparedStatement/ResultSet и Setters/Getters
- 5. C# Variable Getters/Setters
- 6. C++: Getters and Setters?
- 7. Setters and Getters python
- 8. Getters/(Setters) для классов?
- 9. Создание Getters + Setters Java
- 10. Lua getters and setters
- 11. Javascript Getters And Setters
- 12. Java Getters and Setters
- 13. Getters and Setters
- 14. Getters, Setters, Arrays
- 15. Getters Setters Autoproperty issue
- 16. Getters/Setters для NSObject
- 17. Getters, Setters, Object Java
- 18. Getters & Setters в шаблоне прототипа
- 19. Getters and Setters в Android
- 20. Шифрование и расшифровка HIbernate в Getters/Setters?
- 21. C# getters/setters в структурах и интерфейсах
- 22. C# Shorthand getters and setters
- 23. Getters and Setters с указателями
- 24. PFObject Подкласс Getters and Setters?
- 25. Getters and setters in javascript
- 26. Getters and setters на прототипе
- 27. Setters/Getters не устанавливаются/получаются
- 28. Getters and Setters in Kotlin
- 29. Публичные данные vs Getters, Setters
- 30. Getters and Setters in Swift