Странная ошибка sbt, где я не могу импортировать проект sbt из-за того, что клавиши сталкиваются с собой

После изменения моего файла build.sbt в IntelliJ, я получаю этот странный отчет об ошибке, где кажется, что "ключи" (я не знаю, что эти ключи даже есть) сталкиваются с собой. Исследование этого сообщения об ошибке только находит запросы на github pull, где люди запрашивают поддержку библиотек для префикса своих ключей, чтобы избежать коллизий. Как эти встроенные клавиши IntelliJ сталкиваются с собой? Это не имеет никакого смысла. Вот выдержка из трассировки стека:

java.lang.RuntimeException: Some keys were defined with the same name but different types: 
'ssExtractBuild' (sbt.Task[org.jetbrains.sbt.structure.BuildData], sbt.Task[org.jetbrains.sbt.structure.BuildData]), 
'settingData' (sbt.Task[scala.collection.Seq[org.jetbrains.sbt.structure.SettingData]], sbt.Task[scala.collection.Seq[org.jetbrains.sbt.structure.SettingData]]), 
'taskData' (sbt.Task[scala.collection.Seq[org.jetbrains.sbt.structure.TaskData]], sbt.Task[scala.collection.Seq[org.jetbrains.sbt.structure.TaskData]]), 
'extractStructure' (sbt.Task[org.jetbrains.sbt.structure.StructureData], sbt.Task[org.jetbrains.sbt.structure.StructureData]), 
'ssExtractDependencies' (sbt.Task[org.jetbrains.sbt.structure.DependencyData], sbt.Task[org.jetbrains.sbt.structure.DependencyData]), 
'ssExtractProjects' (sbt.Task[scala.collection.Seq[org.jetbrains.sbt.structure.ProjectData]], sbt.Task[scala.collection.Seq[org.jetbrains.sbt.structure.ProjectData]]), 
'ssExtractAndroid' (sbt.Task[scala.Option[org.jetbrains.sbt.structure.AndroidData]], sbt.Task[scala.Option[org.jetbrains.sbt.structure.AndroidData]]), 
'ssExtractRepository' (sbt.Task[scala.Option[org.jetbrains.sbt.structure.RepositoryData]], sbt.Task[scala.Option[org.jetbrains.sbt.structure.RepositoryData]]), 
'ssOptions' (org.jetbrains.sbt.Options, org.jetbrains.sbt.Options), 
'commandData' (sbt.Task[scala.collection.Seq[org.jetbrains.sbt.structure.CommandData]], sbt.Task[scala.collection.Seq[org.jetbrains.sbt.structure.CommandData]]), 
'ssExtractProject' (sbt.Task[scala.collection.Seq[org.jetbrains.sbt.structure.ProjectData]], sbt.Task[scala.collection.Seq[org.jetbrains.sbt.structure.ProjectData]]), 
'ssExtractPlay2' (sbt.Task[scala.Option[org.jetbrains.sbt.structure.Play2Data]], sbt.Task[scala.Option[org.jetbrains.sbt.structure.Play2Data]])

И полная трассировка стека находится здесь: https://pastebin.com/ymZvgMCj

Это произошло после того, как я добавил зависимость от моего build.sbt. Сначала я подумал, что это проблема, и попытался удалить ее, но теперь мой build.sbt даже не работает в предыдущем состоянии! Я очистил свой кеш intellij, перезапустил, полностью удалил папку .idea в этом проекте и переименовал весь проект в intellij, и у меня все еще такая же проблема. Что могло произойти в последний раз, когда я изменил свой build.sbt, и теперь это сломало бы этот проект?

Ответ 1

У меня тоже была такая же проблема, я "исправил" ее, установив и переустановил IntelliJ.

Intellij Версия: IntelliJ IDEA 2017.2.5 Build # IU-172.4343.14 Scala Версия плагина: 2017.2.13

Шаги, которые не работают

  • Переключение ветки git
  • Недействительные кеши/перезагрузка
  • Удаление каталога .idea и reimport
  • Изменение конфигурации SBT, чтобы не использовать объединенную банку

Ответ 2

Идти к

Preference -> Build, Execution, Deployment 
                  -> SBT 
                      -> check "Use SBT shell for build and import" 
                           -> Press OK

Теперь вы можете обновить проекты SBT, и это должно работать. если вы хотите, вы можете снять флажок "Использовать оболочку SBT для сборки и импорта", и это также будет работать

Ответ 3

У меня была такая же ошибка с последней версией Idea 2017.3 EAP. Я не смог импортировать проект и получил ту же ошибку. Исправление для меня состояло в том, чтобы переключиться на другую ветку, импортировать проект (который был успешным), затем снова вернуться к исходной ветке и reimport проекту в Idea (нажмите кнопку обновления sbt).

Не было проблем с запуском sbt в терминале, только в Idea. Звучит как проблема идеи...

Ответ 4

У меня также возникла эта проблема, когда я разработал Spark с помощью Intellij Idea, и я исправлю это, изменив "File → Settings → Build Tools → sbt → Group modules" на "используя квалифицированные имена"

и выберите "Файл → Настройки → Инструменты сборки → sbt → Использовать оболочку sbt для сборки и импорта".

Ответ 5

В моем случае у меня был модуль Python. Переименовано внешне, а intellij не может ничего сделать со структурой модулей. Включая sbt refresh.

Использование оболочки sbt не решило проблему. Аннулирование кэша и перезапуск также не помогли.

Я должен удалить sbt.xml в папке проекта /.idea.

Это сотрет ваши текущие настройки SBT. Не предложение цены, так как sbt не работал вообще.

Ответ 6

Я испытал это сегодня попробовал эти вещи, которые НЕ это исправить:

  • Использовать оболочку SBT для сборки и импорта (настройки SBT)
  • Сделайте недействительным кеш и перезапустите

Однако проблема, наконец, исчезла, когда я сделал это:

  • Увеличьте максимальный размер кучи SBT до 6000 (это было 5000)

Ответ 7

У меня была такая же проблема сегодня. Мое решение было:

  • аннулировать кеш
  • закрыть Интеллий
  • удалить .idea
  • импортный проект