Comment forcer IntelliJ IDEA à recharger les dépendances depuis build.sbt après leur modification?

123

J'utilise IntelliJ IDEA 13 (Community Edition) avec le plugin Scala.

Mon importation initiale d'un projet Scala existant avec un très build.sbtbien fonctionné. Les dépendances de la bibliothèque ont été récupérées par IDEA. Les dépendances supplémentaires ajoutées après l'importation initiale n'ont pas été récupérées, bien que j'aie coché l' auto-importoption.

Comment puis-je forcer IDEA à recharger les dépendances à partir de build.sbt?

David B.
la source
1
J'ai eu exactement le même comportement que vous décrivez, puis cela a commencé à fonctionner sans que je fasse rien. J'ai l'impression que l'intégration sbt est un peu compliquée en ce moment et que nous devons juste être patients.
Nicolas Rinaudo
Ne fonctionne toujours pas pour moi (janvier 2017).
qu1j0t3

Réponses:

191

Vous pouvez forcer SBT à recharger les modifications: Ouvrez la fenêtre d'outils SBT (sur le côté droit de l'IDE) et appuyez sur le bouton d'actualisation.

Si vous utilisez la fonction d'importation automatique, vous devez enregistrer votre fichier pour forcer l'actualisation automatique.

Alefas
la source
16
Voici comment ouvrir la fenêtre de l'outil SBT: stackoverflow.com/questions/32374193/… (au cas où quelqu'un d'autre ne serait pas disponible pour le trouver)
Kaushik Acharya
12

SI le plugin se bloque, cela aide à invalider le cache (sous le menu fichier) et à redémarrer intellij.

Mary Jane
la source
4

Depuis le 7 décembre 2013, le problème est résolu. Vous devez mettre à jour le plugin Scala dans IntelliJ IDEA (cela s'applique à la fois aux éditions communautaires et ultimes).

Voici le lien vers le numéro ouvert sur le site Web de la communauté des développeurs JetBrains: http://devnet.jetbrains.com/thread/451395

David Riccitelli
la source
Cela ne semble pas lié à la question initiale. Le bug jetbrains dit "Lors de la création d'un nouveau projet, à partir d'un projet SBT existant". Le problème est qu'IntellliJ n'obtient parfois pas les dernières bibliothèques, même avec l'importation automatique activée. Comme le souligne @alefas, il faut parfois forcer le rechargement (ebven avec un plugin Scala de 2018).
danio
3

Cela peut être dû à une publication interrompue de org.jetbrains:sbt-structure:latest.integration qui a eu lieu ce soir, il y a environ 4 ou 5 heures. Étant donné que votre message a 4 heures ...

Vous pouvez voir l'activité du lierre dans idea.log( ~/Library/Logs/IntelliJIdea13ou ~/Library/Logs/IdeaIC13sur OSX).

[warn]  ::::::::::::::::::::::::::::::::::::::::::::::
[warn]  ::          UNRESOLVED DEPENDENCIES         ::
[warn]  ::::::::::::::::::::::::::::::::::::::::::::::
[warn]  :: org.jetbrains#sbt-structure;latest.integration: not found
[warn]  ::::::::::::::::::::::::::::::::::::::::::::::
[warn]
[warn]  Note: Some unresolved dependencies have extra attributes.  Check that these dependencies exist with the requested attributes.
[warn]          org.jetbrains:sbt-structure:latest.integration (sbtVersion=0.13, scalaVersion=2.10)

J'ai ouvert un billet chez JetBrains.

Jeffrey Aguilera
la source
2
Il semble que c'était un problème avec Ivy latest.integration, après que le dépôt sbt ait été déplacé vers un autre miroir. Maintenant, dans le plugin Scala 0.26.323, il résout exactement la version du plugin sbt-structure (1.0.2), et tout devrait fonctionner. Meilleures salutations, Alexander Podkhalyuzin.
Alefas
@Jeffrey, pourriez-vous créer un lien vers le ticket d'assistance? La dernière mise à jour ajoute désormais correctement de nouvelles dépendances supplémentaires, mais ne prend pas en compte les modifications apportées à la version d'une dépendance existante (je dois modifier manuellement les différents .iml et .idea / bibliothèques / SBT_SBT_ .xml par le nouveau numéro de version). J'aimerais revenir sur ce ticket.
David B.
1
Mon billet était un double de SCL-6340
Jeffrey Aguilera
0

Peut-être que cela ne fonctionne que pour certains types de projets, mais dans mon cas,

côté bibliothèque, je fais dans sbt:publishLocal

du côté client où la bibliothèque entre, je clique sur l'élément de menu Build -> Build (Ctrl-F9), et parfois, lorsque les fichiers ouverts ou Intellisens ne sont pas encore à jour, je fais Ctrl-Alt-Y(élément de menu File -> Synchronize) pour obtenir le fichier reflétant la base de code actualisée.

Ne pas avoir à le faire refresh all sbt projectsest plus rapide pour moi.

Hartmut P.
la source