wake-up-neo.com

Seltsamer sbt-Fehler, bei dem ich kein sbt-Projekt importieren kann, weil Schlüssel mit sich selbst kollidieren

Nachdem ich meine build.sbt-Datei in IntelliJ geändert habe, erhalte ich diesen seltsamen Fehlerbericht, in dem es so aussieht, als würden "Schlüssel" (ich weiß nicht, was diese Schlüssel sind) mit sich selbst kollidieren. Beim Durchsuchen dieser Fehlernachricht werden nur Github-Pull-Anforderungen gefunden, bei denen die Benutzer von Bibliotheksbetreuern aufgefordert werden, ihre Schlüssel vorzugeben, um Schlüsselkollisionen zu vermeiden. Wie können diese integrierten IntelliJ-Tasten mit sich selbst kollidieren? Das macht keinen Sinn. Hier ist der Auszug aus dem 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]])

Und der vollständige Stack-Trace ist hier: https://Pastebin.com/ymZvgMCj

Dies geschah, nachdem ich meinem build.sbt eine Abhängigkeit hinzugefügt hatte. Ich dachte, es war zuerst das Problem und versuchte es zu entfernen, aber jetzt funktioniert mein build.sbt nicht einmal in seinem vorherigen Zustand! Ich habe den Cache von intellij gelöscht, neu gestartet, meinen .idea-Ordner in diesem Projekt vollständig gelöscht und das gesamte Projekt selbst in intellij importiert, und ich habe immer noch das gleiche Problem. Was konnte zwischen dem letzten Mal, als ich meinen build.sbt gewechselt habe, passiert sein, und jetzt würde das Projekt so brechen?

27
K. M

Ich hatte auch das gleiche Problem, ich habe dieses Problem behoben, indem ich IntelliJ installiert und installiert habe. 

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

Schritte, die nicht funktionierten

  • Git-Zweig wechseln
  • Caches ungültig machen/neu starten
  • .Idea-Verzeichnis entfernen und erneut importieren
  • Ändern der SBT-Konfiguration, um das mitgelieferte Glas nicht zu verwenden 
2
rahilb

Gehe zu 

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

Sie können jetzt SBT-Projekte aktualisieren und es sollte funktionieren. Wenn Sie möchten, können Sie "SBT-Shell zum Erstellen und Importieren verwenden" deaktivieren, und es funktioniert auch

61
feleio

Ich hatte gerade den gleichen Fehler mit der neuesten EAP-Version 2017.3 von Idea . Ich konnte ein Projekt nicht importieren und bekam den gleichen Fehler . Das Update für mich bestand darin, zu einem anderen Zweig zu wechseln und das Projekt (das erfolgreich), wechseln Sie dann wieder zum ursprünglichen Zweig und importieren Sie das Projekt erneut in Idea (klicken Sie auf die Schaltfläche zum Aktualisieren von Sbt).

Es ist nie ein Problem aufgetreten, wenn sbt in einem Terminal ausgeführt wird, nur in Idea . Klingt wie ein Ideenproblem ...

2
Allan

In meinem Fall hatte ich ein Python-Modul. Äußerlich umbenannt, und intellij kann nichts tun, was mit der Modulstruktur zusammenhängt. Einschließlich sbt Refresh.

Use sbt Shell hat das Problem nicht behoben. Das Ungültigmachen des Caches und des Neustarts half ebenfalls nicht.

Ich muss den sbt.xml im Projekt/.idea-Ordner löschen .

Dadurch werden Ihre aktuellen sbt-Einstellungen gelöscht. Kein Angebot, da sbt überhaupt nicht funktionierte.

1
Douglas Liu

Ich habe dies heute erlebt und diese Dinge ausprobiert, die es NICHT behoben haben:

  • Verwenden Sie die SBT-Shell zum Erstellen und Importieren (SBT-Einstellungen)
  • Den Cache ungültig machen und neu starten

Das Problem ist jedoch endgültig DID verschwunden, als ich das getan habe:

  • Erhöhen Sie die maximale Größe des SBT-Heapspeichers auf 6000 (es waren 5000).
0
Jim McCabe

Dieses Problem hatte ich auch, als ich Spark mit Intellij Idea entwickelte. Ich behebe das Problem, indem ich "Datei -> Einstellungen -> Build-Tools -> sbt -> Gruppenmodule" in "Qualifizierte Namen verwenden" ändere 

und wählen Sie "Datei -> Einstellungen -> Build-Tools -> sbt -> sbt-Shell für Build und Import verwenden".

0
user9547302

Ich hatte heute das gleiche Problem. Mein Fix war:

  • den Cache ungültig machen
  • schließen Sie Intellij
  • lösche .idea
  • projekt importieren