У меня есть несколько проверок, которые выполняются с использованием процессоров аннотаций Java, но я также хотел бы выполнить проверки для типов, которые не аннотированы.
Например, если мы предположим, что у меня есть аннотация типа @Responsible(name="xyz")
, как лучше всего подключиться к процессу компиляции, чтобы обеспечить наличие аннотации для всех типов верхнего уровня.
В моей текущей реализации я полагаюсь на две аннотации, ожидаемую (Ответственную) и одну на уровне пакета. Последний используется для «запуска» обработчика аннотаций, даже если ожидаемой аннотации нет. Затем внутри запущенного обработчика аннотаций я ищу и фильтрую java-файлы на диске (используя переданные компилятору аргументы), чтобы собрать все файлы, которые я хотел бы обработать, и отфильтровать их, когда java-файл соответствует аннотированному типу, который обрабатывает процессор. . Таким образом, если кто-то фиксирует новый файл без указания аннотации, сборка завершается ошибкой.
Нет более чистого способа найти «неаннотированные» типы?