web-dev-qa-db-fra.com

IntelliJ ne peut pas importer un projet sbt

J'ai mis à niveau IntelliJ vers la version CE 2017.3 à partir d'un CE 2017.2.5 et je ne peux plus construire mon projet sbt. La construction est bloquée sur la première étape:

"Build: sync
  MyProjName: syncing...
   dump project structure from sbt"

J'ai supprimé le répertoire .idea et le répertoire MyProjName/project/target. J'ai fait une compilation sbt à partir de la ligne de commande, ce qui a fonctionné. Ensuite, j'ai relancé IntelliJ et essayé d'importer MyProjName/build.sbt en tant que projet. Je me suis également déconnecté/connecté. Je l'ai fait plusieurs fois. L'importation ne dépasse jamais cette étape.

Je travaille derrière un pare-feu, mais j'ai vérifié mes paramètres de proxy, qui sont corrects et inchangés par rapport à la version précédente (le cas échéant).

Comment puis-je résoudre/résoudre ce problème?

La version sbt est 0.13.6. Scala plugin 2017.3.10.

À partir du journal:

IDE: IntelliJ IDEA (build #IC-173.3727.127, 27 Nov 2017 09:32)
OS: Windows 7 (6.1, AMD64) 
JRE: 1.8.0_152-release-1024-b6 (JetBrains s.r.o) 
JVM: 25.152-b6 (OpenJDK 64-Bit Server VM) 
57
radumanolescu

J'ai résolu le problème de synchronisation en suivant les informations ici: https://youtrack.jetbrains.com/issue/SCL-13024

L'information clé est "Il semble que sbt tente de resoudre les" sources "et" docs "des plugins sbt qui ne sont pas disponibles du tout. Si les propriétés permettant de télécharger les" sources de la bibliothèque "et les" sources de sbt "sont désactivées, vider la structure est réduite de "pour toujours" à moins de 1 minute. "

C’est-à-dire que dans IntelliJ IDEA, décochez la case "Sources de la bibliothèque" sous "Paramètres de niveau projet" pour Build Tools sbt dans les préférences IDEA. Comme indiqué dans l'image ci-dessous:

enter image description here

63
civic.LiLister

Le seul moyen de contourner ce problème consiste à exécuter d'abord sbt clean compile dans la ligne console/cmd de SBT, puis à actualiser le projet SBT dans IntelliJ.

12
JPotts

Je n'ai pas trouvé le moyen de faire fonctionner cela dans IntelliJ Idea CE 2017.3, je suis donc revenu à CE 2017.2.5

6
radumanolescu

IntelliJ semble limiter l'efficacité du sbt update déjà lent. Je recommande d'utiliser sbt-coursier à la place. Il a été spécialement conçu pour améliorer le temps de mise à jour des dépendances. Sur un grand projet, je participe à l'amélioration du temps de mise à jour des dépendances d'environ 2 ordres de grandeur.

  1. Décochez la case "Utiliser l'importation automatique" dans Preferences > Build, Execution, Deployment > Build Tools > sbt pour empêcher IntelliJ de mettre à jour automatiquement les importations

enter image description here

  1. Ajoutez addSbtPlugin("io.get-coursier" % "sbt-coursier" % "1.0.3") au fichier build.sbt de votre projet
    • Ou installez-le globalement dans ~/.sbt/1.0/plugins/build.sbt
  2. Exécutez sbt update sur la ligne de commande

Si vous voyez [error] Java.lang.NoClassDefFoundError: org/vafer/jdeb/Console, ajoutez ce qui suit à ~/.sbt/1.0/sbt-coursier.sbt.

import coursier.Keys._
classpathTypes += "maven-plugin"

Voir numéro de cours 45 pour plus d'informations sur cette erreur.

  1. (Facultatif) Réactivez l'importation automatique à partir de l'étape 1, car les mises à jour ultérieures des dépendances transactionnelles peuvent être plus rapides.
5
Cory Klein

Ce qui a fonctionné pour moi a été d’augmenter la mémoire de SBT dans IntelliJ. Sur mon Mac: préférence -> Construire, Exécution, Dépannage -> sbt puis changez la "Taille maximale du tas" de 768 Mo à 2048 Mo, puis tout a été importé avec succès après quelques minutes.

4
marios

Je rencontre le même problème! je supprime le répertoire ~/.sbt/0.13, alors cela fonctionne. Vous pouvez supprimer le répertoire sbt que vous avez utilisé.

4
xiang liu
  • Ouvrez un terminal à l'intérieur de IDEA en appuyant sur AltF12 ou utilisez sbt Shell
  • Exécutez sbt - si c'est la première fois, cela prendra du temps.
  • Exécuter clean
  • Exécutez compile - il téléchargera les dépendances que vous avez dans votre projet.
  • Fermez le projet IDEA (File -> Close Project) et rouvrez-le.

Remarque: s'il demande d'importer dans le coin inférieur droit de l'écran, activez Enable auto-import, si vous n'aimez pas le laisser activé (comme moi) appuyez sur Import, annulez la synchronisation, puis à nouveau Refresh sbt project. Lorsque vous essayez d'utiliser l'import au milieu d'une synchronisation, il reste bloqué avec la structure du projet de vidage du message sbt .

Le Refresh sbt project se trouve dans ce coin de la fenêtre Construire la synchronisation - mis en évidence ci-dessous: Refresh sbt project

3
Marcio Tedesco

Avait un ancien projet extrait provoquant ce problème. Est-ce que le rm -rf .idea + habituel a été réimporté, mais il est resté bloqué. J'ai essayé toutes sortes de choses, mais quand finalement résolu le problème pour moi, il ne s'agissait pas simplement de supprimer le dossier de niveau supérieur target, mais de le supprimer.

find . -name target -type d -exec rm -rf {} \;

La prochaine ouverture/importation s'est parfaitement déroulée. (C'était en 2018.1.5, 2018.1.6 et 2018.2 RC.)

1
nibblonian

La version personnalisée SBT fonctionne pour moi.

IntelliJ IDEA Préférences -> Construction, exécution, déploiement -> Outils de construction -> sbt -> Lanceur

Choisissez Personnalisé

custom sbt screenshot

1
Huang Zehai

Pour moi, vérifier simplement use sbt Shell for both build and imports a fonctionné.

1
orhaneee

Décocher simplement 'sources sbt' a fait l'affaire pour moi

0

Je faisais également face à ce problème. Ci-dessous deux configurations ont fonctionné pour moi. J'ai essayé de confirmer ce paramètre dans de nombreux nouveaux projets sbt, pour autant que cela fonctionne.

(1) décochez "Sources de la bibliothèque" sous "Paramètres au niveau du projet" pour Build Tools sbt dans IDEA preferences (2) -Dhttp.nonProxyHosts = Option "Host1 | Host2" dans Fichier> Paramètres> Construction, Exécution, Déploiement> sbt> VM paramètres

0
Rohit

J'ai eu les mêmes problèmes après la mise à niveau d'intelliJ jusqu'en 2017.3 Mais cela fonctionne bien maintenant.

Je pense qu'intelliJ ne pouvait pas passer l'option ' Pas de proxy pour ' à sbt. alors j'ai ajouté

-Dhttp.nonProxyHosts = "Host1 | Host2"

option dans Fichier> Paramètres> Construire, Excution, Déploiement> sbt> Paramètres VM

0
Hsun