Странная ошибка 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
- импортный проект