Как настроить процессоры аннотаций Java в Eclipse?
Я успешно запустил процессор аннотаций для аннотаций удержания уровня CLASS через компиляцию командной строки с использованием Java 8.
Тем не менее, когда я попытался настроить процессор аннотаций в Eclipse и попытался запустить его с "-proc:only"
вариант, он не стал эффективным.
Я включил файл Jar, содержащий файл класса пользовательского процессора аннотаций, в Project Properties -> Annotation Processing -> Factory Path
, Я также предоставил -proc:only
вариант в Project Properties -> Annotation Processing -> Processor Options
Тем не менее процессор аннотаций не вызывается, когда выполняется класс, содержащий мою аннотацию.
Пожалуйста, помогите мне определить необходимую настройку или ошибку или дополнительный шаг для запуска процессора аннотаций через eclipse.
2 ответа
Наконец-то я смог включить свой собственный процессор аннотаций, добавив файл JAR.
- Щелкните правой кнопкой мыши по проекту и выберите "Свойства".
- Откройте Java Compiler -> Обработка аннотаций. Установите флажок "Включить обработку аннотаций".
- Откройте Компилятор Java -> Обработка аннотаций -> Путь к фабрике. Установите флажок "Включить настройки проекта". Добавьте свой JAR-файл в список.
- Очистите и постройте проект.
И это наконец-то сработало.
Это очень просто при условии, что любой подключаемый APT-штекер правильно настроен.
Выполните шаги, упомянутые в посте выше, и контрольное изображение, чтобы визуализировать его Изображение, показывающее конфигурацию QueryDsl APT для проекта maven.
При компиляции через командную строку или терминал вы можете увидеть все журналы на одном экране после команды компиляции. В затмении эти журналы можно увидеть на
Окно-> Показать представление-> Общее-> Журнал ошибок
Если вы хотите, чтобы среда IDE(Eclipse) указывала предупреждение, ошибку или другое диагностическое сообщение именно на конкретный элемент в редакторе кода, мы должны вызвать метод printMessage из javax.annotation.processing.Messager с 3 аргументами, как показано ниже.,
messager.printMessage(Kind.ERROR, "Сообщение об ошибке", элемент);