Я использую обработчики аннотаций Google AutoFactory. Я аннотировал SomeClass с помощью @AutoFactory и ссылался на new SomeClassFactory().create() где-то еще в этом же модуле.
Конфигурация Maven:
Я добавил необходимую зависимость в Maven:
<dependency>
<groupId>com.google.auto.factory</groupId>
<artifactId>auto-factory</artifactId>
<version>1.0-beta2</version>
<optional>true</optional>
</dependency>
При запуске $ mvn clean compile я вижу, что создается target/generated-sources/annotions/somepackage/SomeClassFactory, и модуль компилируется без ошибок.
Конфигурация IntelliJ:
-
Reimport all maven modules -
Preferences→Annotation Processors→Enable annotation processing -
Rebuild Project
Этого должно быть достаточно в моей версии IDEA (v14.1.4), если мое понимание верное.
Я также выполнил следующие шаги:
- Проверено, что папка
generated-sourcesдобавлена как источник вProject Structure - Убедитесь, что для параметра Maven
Generated sources foldersустановлено значениеDetect automatically - Проверено, что источник фактически сгенерирован после переустановки (удаленная папка
target, чтобы убедиться, что она сгенерирована IntelliJ) - Попробуйте отключить
Exclude output pathsв структуре проекта, как предложено @tilpner - Недействительные кеши и перезапуск
- Удалить
.ideaпапку и.imlфайлы - Эксперимент с различными настройками для
Phase to be used for folders updateвPreferences→Maven→Importing
Проблема:
После выполнения всех этих шагов сгенерированный класс не отображается в проводнике проекта. Фактически, весь каталог target нигде не видно. Ошибка компиляции с cannot find symbol: SomeClassFactory
и new SomeClassFactory().create() отмечен красным цветом в редакторе, в то время как Maven генерирует и компилирует без каких-либо проблем.
Я сам вне вариантов, и любая помощь или предложения были бы очень желанными!
Обновление:, когда я комментирую код, вызывающий ошибку компиляции, IntelliJ печатает это предупреждение в сообщениях компиляции: Warning:Output path /Users/.../target/generated-sources/annotations intersects with a source root. Only files that were created by build will be cleaned.

