40 votes

Étrange bug sbt où je ne peux pas importer le projet sbt car des clés entrent en collision avec elles-mêmes

Après changement de mon build.sbt le fichier dans IntelliJ, j'obtiens cette erreur étrange rapport où il apparaît que les "clés" (je ne sais pas ce que ces touches sont même) sont entrés en collision avec eux-mêmes. La recherche de ce message d'erreur ne trouve github pull requests où les gens demandent de la bibliothèque des responsables du préfixe leurs clés pour éviter de clé de collisions. Comment peut-il intégré à l'Ide, les clés d'entrer en collision avec eux-mêmes? Il ne fait aucun sens. Voici l'extrait de la trace de la pile:

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

Et le plein de trace de pile est ici: https://pastebin.com/ymZvgMCj

Ce qui s'est passé après que j'ai ajouté une dépendance à mon build.sbt. Je pensais que c'était le problème au début et essayé de l'enlever, mais maintenant, mon build.sbt ne fonctionne pas même dans son état précédent! J'ai effacé mon intellij cache, redémarré, supprimé mon .idea le dossier de ce projet entièrement et réimportés l'ensemble du projet dans l'ide, et j'ai toujours le même problème. Ce qui aurait pu arriver entre la dernière fois que j'ai changé d' build.sbt et ce serait casser le projet de ce genre?

100voto

feleio Points 1030

Aller à

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

Vous pouvez maintenant actualiser les projets SBT et cela devrait fonctionner. si vous le souhaitez, vous pouvez décocher "Utiliser le shell SBT pour la construction et l’importation" et cela fonctionnera également.

4voto

rahilb Points 647

Moi aussi j'ai eu le même problème, je l'ai "corrigé" en analysant et en réinstallant IntelliJ.

Version Intellij: IntelliJ IDEA 2017.2.5 Version n ° IU-172.4343.14 Version du plug-in Scala: 2017.2.13

Étapes qui n'ont pas fonctionné

  • Changer de branche
  • Invalider les caches / redémarrer
  • Suppression du répertoire .idea et réimportation
  • Modification de la configuration SBT pour ne pas utiliser le fichier jar fourni

2voto

Allan Points 67

J'avais juste la même erreur avec la dernière version 2017.3 EAP d'Idea. Je ne pouvais pas importer un projet et j'ai la même erreur. Le correctif pour moi était de passer à une autre branche, d'importer le projet (ce qui a réussi), de revenir ensuite à la branche d'origine et de réimporter le projet dans Idea (cliquez sur le bouton d'actualisation sbt).

Il n’ya jamais eu de problème d’exécution de sbt dans un terminal, mais uniquement dans Idea. Cela ressemble à un problème d'idée ...

1voto

user9547302 Points 31

J'ai également rencontré ce problème lorsque j'ai développé Spark avec Intellij Idea et je résous ce problème en remplaçant "Fichier -> Paramètres -> Outils de construction -> sbt -> Modules de groupe" par "en utilisant des noms qualifiés".

et activez l'option "Fichier -> Paramètres -> Outils de construction -> sbt -> Utiliser le shell sbt pour la construction et l'importation".

1voto

Douglas Liu Points 351

Dans mon cas, j'avais un module python. Renommé en externe et intellij ne parvient pas à faire quoi que ce soit en relation avec la structure des modules. Y compris sbt rafraichir.

Utiliser sbt shell n'a pas résolu le problème. Invalider le cache et redémarrer n'aidait pas aussi.

Je dois supprimer le sbt.xml dans le dossier projet / .idea .

Cela effacera vos paramètres sbt actuels. Ce n'était pas une offre puisque sbt ne fonctionnait pas du tout.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X