Я использую сторонний процессор аннотаций для генерации кода метаданных (файлов .java) из аннотированных классов в моем проекте.Я успешно настроил процессор через Eclipse (Свойства -> Компилятор Java -> Обработка аннотаций), и генерация кода работает нормально (код создается и генерируется автоматически).Кроме того, Eclipse успешно выполняет автозаполнение сгенерированных классов и их полей без каких-либо ошибок.Допустим, у меня есть класс "some.package.Foo" и сгенерированный класс метаданных - "some.package.Foo_".С помощью автозаполнения я могу получить следующий код в редакторе Eclipse без каких-либо ошибок:
import some.package.Foo_;
...
public class Test {
void test() {
Foo_.someField = null; // try to access a field from the generated class Foo_
}
}
Однако, как только я фактически соберу проект (или просто сохраню файл после Build)автоматически включен), я получаю ошибку, которая говорит о том, что "some.package.Foo_" не может быть решена.Похоже, что Eclipse генерирует и компилирует some.package.Foo_ одновременно или, что более вероятно,
Я нашел два временных решения (которые, во-первых, практически препятствуют использованию процессора аннотаций):
- Перед каждой сборкой сгенерированных классов щелкните правой кнопкой мыши на каждом сгенерированном файле, перейдите в Свойства и снимите флажок «Производные».После этого я делаю очистку проекта, и импорт в порядке - ошибок больше нет.Однако, если я выполню очистку еще раз, ошибки снова появятся, потому что генерация файлов вызывает повторную проверку галочки «Производные» (автоматически).Так что это действительно раздражает и отнимает много времени.
- Я также снимаю галочку «Производные» из всех этих файлов, и на этот раз снимаю галочку «Производные» из исходной папки и пакетов, которые содержат эти файлы.Затем я отключаю процессор аннотаций, а затем выполняю очистку.Больше нет ошибок импорта, даже если я делаю другую очистку, но нет никакой пользы от использования процессора аннотаций, потому что, если бы я должен был изменить что-то, что обновило бы модель, мне нужно снова включить процессор аннотаций и повторитьэта утомительная процедура, чтобы отключить ее после создания новой версии этих файлов.
Это ошибка в Eclipse?Если да, есть ли лучший обходной путь или быстрое решение, чем два, которые я изложил выше?Если нет, что я должен попытаться решить проблему?
Я также попытался изменить порядок библиотек в пути сборки, и это не помогло.