Процессор аннотаций обрабатывает измененный класс только после первого запуска

Я разрабатываю процессор аннотаций.

Когда проект процессора скомпилирован как .jar, обработка происходит во всех классах моего второго проекта, который использует процессор (также происходит, когда я использую Project->Clean... в Eclipse). Но когда я меняю один класс и сохраняю его, во втором проекте обработка происходит только в этом классе.

Проблема в том, что мой процессор должен получить корневые элементы всех классов, но когда он работает только в одном классе, он может получить только корневой элемент этого класса.

Любые идеи о том, как получить все корневые элементы проекта?


person Natanael    schedule 04.08.2013    source источник
comment
Вы используете процессор только под eclipse или используете и в сборке?   -  person John Ericksen    schedule 13.08.2013
comment
Я думаю, что он работает только под Eclipse. Я не знаю другого пути. Он настраивается в Eclipse в Свойствах->Компилятор Java->Обработка аннотаций.   -  person Natanael    schedule 15.08.2013
comment
Eclipse выполняет инкрементную компиляцию, что несколько усложняет массовую обработку аннотаций. Я знаю, что некоторые проекты хранят файл известных корней и используют его в качестве входных данных для обработки всех корней во время обработки аннотаций. Лично я предпочитаю запускать чистую установку mvn или аналогичную сборку вне среды IDE для обработки аннотаций.   -  person John Ericksen    schedule 16.08.2013
comment
Я думаю, что мог бы хранить измененные классы в статической переменной, чтобы иметь доступ ко всем из них в любое время. Но как поступить с классовым перемещением. Есть ли способ узнать, удаляется ли класс из проекта? Я мало что знаю о mvn install os. Не могли бы вы дать мне ссылку об этом?   -  person Natanael    schedule 17.08.2013


Ответы (1)


Я знаю, это старый вопрос, но я наткнулся на эту проблему прямо сейчас, и я также нашел решение. В eclipse (я использую Mars) щелкните правой кнопкой мыши проект -> свойства -> JavaCompiler -> обработка аннотаций -> Factory Path -> Advanced... -> Запустите процессоры этого контейнера в пакетном режиме.

введите здесь описание изображения

person wrm    schedule 15.07.2015