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
  • 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.

1 ответ

Решение

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

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

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

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

Другие вопросы по тегам