Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Strange sbt bug where I cannot import sbt project due to keys colliding with themselves

After changing my build.sbt file in IntelliJ, I get this strange error report where it appears that "keys" (I don't know what these keys even are) are colliding with themselves. Researching this error message only finds github pull requests where people are requesting library maintainers to prefix their keys to avoid key collisions. How can these built-in IntelliJ keys collide with themselves? It makes no sense. Here is the excerpt from the stack trace:

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]]) 

And the full stack trace is here: https://pastebin.com/ymZvgMCj

This happened after I added a dependency to my build.sbt. I thought it was the problem at first and tried removing it, but now my build.sbt doesn't even work in its previous state! I've cleared my intellij's cache, restarted, deleted my .idea folder in that project entirely and reimported the entire project itself into intellij, and I still have the same problem. What could have happened between the last time I changed my build.sbt and now that would break the project like this?

like image 391
K. M Avatar asked Nov 02 '17 21:11

K. M


2 Answers

Go to

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

You can now refresh SBT projects and it should work . if you want, you could uncheck "Use SBT shell for build and import" and it will also work

like image 138
feleio Avatar answered Sep 21 '22 07:09

feleio


I too had the same issue, I 'fixed' it by nuking and reinstalling IntelliJ.

Intellij Version: IntelliJ IDEA 2017.2.5 Build #IU-172.4343.14 Scala Plugin Version: 2017.2.13

Steps that did not work

  • Switching git branch
  • Invalidate caches / Restart
  • Removing .idea directory & reimport
  • Changing SBT config to not use the bundled jar
like image 27
rahilb Avatar answered Sep 21 '22 07:09

rahilb