Подтвердить что ты не робот

IntelliJ не может найти сгенерированные источники при использовании в одном модуле

Я использую обработчики аннотаций 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
  • PreferencesAnnotation ProcessorsEnable 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 в PreferencesMavenImporting

Проблема:

После выполнения всех этих шагов сгенерированный класс не отображается в проводнике проекта. Фактически, весь каталог 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.

4b9b3361

Ответ 1

Я получил помощь от поддержки Jetbrains, и проблема оказалась предпочтительной для исключенных файлов. Есть два места, где они настроены:

Пожалуйста, убедитесь, что папки/файлы не исключены в Preferences > Build, Execution, Deployment > Compiler > Excludes, а шаблон файла/папки не указан в Preferences > Editor > File Types -> Ignored files and folders

В моем случае target был включен в список игнорируемых файлов и папок в Editor > File Types.

Тогда была проблема компиляции, которую я решил, выбросив файлы проекта IDEA и снова создав проект.