Я переключился с Eclipse на IntelliJ для проекта Gradle.Структура проекта выглядит следующим образом:
root
├── generated_src [main] (generated sources root)
├── generated_testSrc [tests] (generated test sources root)
├── out
│ └── production
│ ├── classes
│ └── resources
└── src
└── main
└── java (sources root)
IntelliJ создал 3 модуля на основе конфигурации gradle, которые выглядят так:
my_project (containing everything, but nothing marked as Sources)
my_project_main (containing generated_src, marked as Sources)
my_project_test (containing generated_testSrc, marked as Tests)
Процессор аннотаций используется для генерации классов впапка generate_src, в результате чего классы выглядят следующим образом:
generated_src [main] (generated sources root)
└── path.to.entities
└── MyEntity_.java
out
└── production
└── classes
└── path.to.entities
└── MyEntity.java
Все случаи использования сгенерированных классов импортируются с использованием подстановочного синтаксиса.Но кажется, что IntelliJ считает, что импорт относится к пакету из папки out / production / classes , а созданный класс не импортируется.Он дает мне возможность импортировать его и генерирует:
import path.to.entities.*;
import path.to.entities.MyEntity_; <--WARNING: not used, remove?
После импорта сгенерированного класса он показывает импорт как неиспользованный, поскольку пакет уже импортирован с синтаксисом с подстановочными знаками.Если я удаляю второй импорт, я возвращаюсь в исходное состояние, когда MyEntity_ не импортируется.
Я попытался:
- импортировать все без подстановочного знакасинтаксис.Работает, но нарушает стиль кода команды
- , помечая my_project_main как зависимость для модуля my_project , как предложено здесь .Проблема остается
Как правильно настроить мой проект для правильного импорта сгенерированных классов?