Java annotationprocessing - генерация файлов в каждом раунде vs в последнем раунде
Я играл с обработкой аннотаций и не мог использовать сгенерированные файлы непосредственно через импорт в моем коде. Вместо этого мне пришлось добавить к сгенерированным классам полный пакет. Я (случайно) выяснил причину этого, оказалось довольно просто, ошибка была в том, что я генерировал файлы на последнем раунде AbstractProcessor. Все, что мне нужно было сделать, - это создавать файлы в каждом раунде.
Итак, мои вопросы таковы::
- Есть ли еще различия в генерации файлов в последнем раунде по сравнению с генерацией файлов перед последним раундом?
- Есть ли конкретная причина (связанная с Java или нет) для такого поведения?
Я знаю из предупреждения, что новые раунды не будут выполняться, даже если аннотация присутствует в новых сгенерированных файлах, однако я все еще не понимаю, как генерация файлов только в последнем раунде изменяет способ доступа к классам.
В случае, если это актуально, я работаю над проектом Android в Android Studio и использую JavaPoet для написания классов.
Что я уже пробовал:
Я отвечал так на вопросы:
Первый
ошибка: пакет generated.schema не существует.
Но потом я сам придумал ответ и отправил следующий вопрос
AnnotationProcessing - генерация файлов в каждом раунде против последнего раунда
Я также прошел через несколько учебных пособий по обработке аннотаций, но мне не удалось найти ничего, объясняющего или намекающего на это поведение.