2016-12-20 3 views
0

У меня есть одна банка, в которой я использовал Aspect для обрезания точек вокруг метода. Аспект работает отлично здесь, и вокруг совета выполняется правильное выполнение метода во время выполнения. Но когда я запутать эту банку и выполнить его, то это дает мне ниже ошибок в консоли:Spring - Aspectj не распространяется на обфускационные (YGuard) двоичные файлы (баночки)

[AppClassLoader @ dad5dc] Ошибка при типе «com.test.imp.aspect.AspectObf» (нет данных отладок доступны): : 0 Невозможно прочитать информацию об отладке для @Aspect для обработки формальной привязки в pointcuts (пожалуйста, скомпилируйте с помощью «javac -g» или «в Ant»)

Пожалуйста, помогите.

ответ

1

Ну, сообщение об ошибке говорит все и даже говорит вам, как решить проблему: Очевидно, вы используете формальное связывание параметров, например. через args(), this(), target(), @annotation() или аналогичный. И Obviosly AspectJ нуждается в отладочной информации, чтобы это работало. Поэтому вы должны настроить yGuard, чтобы исключить удаление информации об отладке из вашего аспекта и, возможно, даже не запутывать ее, вы должны попробовать сами. Другой вариант может заключаться в использовании собственного синтаксиса AspectJ вместо стиля аннотации. Тогда, возможно, компилятор AspectJ может разрешать привязки параметров во время компиляции, а не во время выполнения, но я не уверен.