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

Сбой компиляции Intellij: "уже определен как"

У меня есть проект scala, который компилирует, запускает и проверяет при использовании SBT из командной строки. Однако при создании проекта в intellij кажется, что каждый класс проекта имеет эту ошибку в журнале событий, что приводит к сбою сборки:

SendCommandToService is already defined as case class SendCommandToService
case class SendCommandToService(service: String, commandName: String, keys: Array[String], values: Array[String])
       ^
4b9b3361

Ответ 1

Это означает, что в вашем пути к классам есть два скомпилированных класса с идентичным именем пакета и класса. Один из них составлен sbt, один из которых составлен IntelliJ.

Один из следующих способов должен решить проблему:

  • попытайтесь создать файл IntelliJ.iml с sbt-idea, а не импортировать напрямую.
  • sbt clean перед нажатием кнопки Build → Rebuild in IntelliJ
  • при перестройке с помощью IntelliJ убедитесь, что sbt не запущен.

Ответ 2

Для меня причина в том, что оба myproject/src и myproject/src/main/scala отмечены как Источник. Поэтому intellij не удалось построить myproject/src/main/scala из-за вышеперечисленных ошибок. Исключить источник из myproject/src (в intellij, File- > Структура проекта, выберите myproject Module, выберите папку src на вкладке Sources, удалите ее из Source в панели "Add Content Root" ), решив проблему. Надеюсь, это поможет.

Ответ 3

У меня была та же проблема, и @Max прав, есть конфликт с скомпилированными классами, но предоставленное решение не сработало для меня. Оказывается, я использовал sbt-идею для создания структуры проекта IDEA в качестве обходного пути Intellij IDEA 14 + scala ошибка плагина на импорт SBT, который пока не исправлен, я пишу это.

Чтобы исправить это, мне пришлось удалить src_managed/main/controller, который был в конфликте с src_managed/main в настройках модуля из-за ошибки sbt-idea. Поэтому дважды проверьте исходные папки вашего модуля и убедитесь, что у вас нет подпапок, конфликтующих с родительской папкой, уже объявленной как источник.

Ответ 4

У меня была аналогичная проблема неоднократно как внутри Idea, так и без нее: plain SBT.

Оказалось, что CVS хранит копии некоторых файлов *. scala в подкаталоге CVS/Base, который SBT, по-видимому, пытается скомпилировать. Проблема исчезла, когда я удалил подкаталоги CVS.

Ответ 5

В моем случае проблема была в протобуфе плагине идей:

  • Удалите идею плагина protbuf.
  • Закрыть идею
  • Удалите все папки, связанные с идеей (.idea и .idea_modules)
  • Откройте идею и снова импортируйте проект.

Ответ 6

После компиляции sbt мне пришлось пометить папку как Generated Sources Root, потому что мне нужны эти файлы для компиляции.