2014-06-24 4 views
6

Я довольно новичок в Intellij и только что начал свой первый проект Maven. У меня есть следующая структура каталогов:Intellij не находит исходные файлы из тестового каталога

MyProject 
├── myapp.iml 
├── pom.xml 
└── src 
   ├── main (sources root) 
   │   ├── java 
   │   │   └── com 
   │   │    └── mysite 
   │   │     └── myapp 
   │   │      └── App.java 
   │   └── main.iml 
   └── test (test sources root) 
    ├── java 
    │   └── com 
    │    └── mysite 
    │     └── myapp 
    │      └── AppTest.java 
    └── test.iml 

Проблема заключается в том, что компилятор Intellij не может разрешить символ App в AppTest.java. В структуре проекта у меня есть MyProject, установленный в корневом каталоге для модуля MyProject, src/main, установленном в корневом каталоге для модуля main и src/test, установленном для корня проекта для модуля test.

Я попробовал решение здесь: Add main/java classes to my test/java directory in intellij, но Intellij не позволил мне добавить src/main в качестве зависимости от src/test. Это говорит мне: модуль MyProject не должен содержать исходный корень «blah/blah/src/main/java». Корень уже принадлежит модулю «main».

Может кто-нибудь, пожалуйста, сообщите, как настроить мои модули/проект, чтобы Intellij мог найти все классы? Благодарю.

ответ

1

Один простой способ решить эту задачу: во-первых, создать тестовый класс в тестовом каталоге. Когда вы инициализируете класс, который будет протестирован внутри testClass, он покажет ошибку компилятора. Держите курсор и нажмите ALT+ENTER, затем во всплывающем меню выберите create class. Готово.

+0

Спасибо. Я не совсем уверен, почему это сработало, но точные шаги, которые я выполнил, ниже. – jay

+0

(1) Создайте новый класс в корневом каталоге тестовых источников. Неважно, что это такое. (2) Добавьте произвольный метод к новому классу (ошибка поиска не работала, если я сначала не создал метод). (3) Включите строку 'App app = new App();' в методе. (4) Наведите указатель мыши на слово 'App', пока не появится значок обнаружения лампочки. (5) Выберите его, а затем выберите «основной» проект для зависимостей. Я не понимаю, почему это не работает, если вы попытаетесь сделать это вручную. – jay

+0

На самом деле я столкнулся с подобной проблемой, и я разобрал ее таким образом. Может быть какая-то непонятная проблема не совсем уверена – SparkOn

1

Еще одна вещь, которую я обнаружил, это то, что Intellij создан для MyProject, main и test. Избавление от модулей main и test также, похоже, решает проблему без заметных внешних побочных эффектов. Все же.

Смежные вопросы