Почему сгенерированные APT классы не компилируются Eclipse? - PullRequest
2 голосов
/ 14 июня 2010

В моем проекте Eclipse я использую сторонний процессор аннотаций, Hibernate Metamodel Generator , если быть точным.Процессор аннотаций работает должным образом и генерирует файлы .java в соответствии со спецификацией.Эти файлы создаются в каталоге проекта Eclipse в папке «gen».В свойствах проекта это правильно отражено, поскольку существуют две исходные папки - «src» и «gen».Однако, когда проект по какой-то причине собран, все [сгенерированные] исходники из «gen» не компилируются (проверяя каталог «bin», я вижу только файлы .class из каталога «src»).Кто-нибудь знает, почему это происходит?

Ответы [ 2 ]

3 голосов
/ 05 августа 2010

Я понял это некоторое время назад и подумал, что вернусь и объясню, что происходит. Когда компилятор запускается, он компилирует существующие исходные коды (те, которые я написал), а затем генерирует исходные файлы из существующих исходных файлов, но не компилирует эти сгенерированные классы. В итоге я превратил это в проект Ant (согласно инструкции ). Итак, в основном у меня было две задачи: сначала создать новые исходные файлы (запуск javac с опцией -proc:only приводит к тому, что обработка аннотаций происходит без компиляции источников), а вторая - фактически скомпилировать все источники (созданные и существующие).

1 голос
/ 15 июня 2010

Вам потребуется обновить папку «gen» в Eclipse (например, из Package Explorer), чтобы Eclipse мог видеть вновь созданные файлы и компилировать их. Вы делаете это?

...