Wie kann man IntelliJ IDEA zwingen, Abhängigkeiten von build.sbt nach dem Ändern neu zu laden?

122

Ich verwende IntelliJ IDEA 13 (Community Edition) mit dem Scala-Plugin.

Mein erster Import eines bestehenden Scala-Projekts mit einer build.sbtfunktionierenden Geldstrafe. Die Bibliotheksabhängigkeiten wurden von IDEA erfasst. Zusätzliche Abhängigkeiten, die nach dem ersten Import hinzugefügt wurden, wurden nicht übernommen, obwohl ich die auto-importOption aktiviert hatte.

Wie kann ich IDEA zwingen, die Abhängigkeiten von neu zu laden build.sbt?

David B.
quelle
1
Ich hatte genau das gleiche Verhalten, das Sie beschreiben, und dann fing es an zu funktionieren, ohne dass ich etwas tat. Ich habe den Eindruck, dass die Integration von sbt im Moment ein bisschen chaotisch ist und wir nur geduldig sein müssen.
Nicolas Rinaudo
Arbeitet immer noch nicht für mich (Jan 2017).
qu1j0t3

Antworten:

190

Sie können SBT zwingen, Änderungen neu zu laden: Öffnen Sie das SBT-Toolfenster (auf der rechten Seite der IDE) und drücken Sie die Aktualisierungstaste.

Wenn Sie die automatische Importfunktion verwenden, müssen Sie Ihre Datei speichern, um die automatische Aktualisierung zu erzwingen.

Alefas
quelle
16
So öffnen Sie das SBT-Tool-Fenster: stackoverflow.com/questions/32374193/… (falls jemand anderes es nicht finden kann)
Kaushik Acharya
11

Wenn das Plugin nicht weiterkommt, hilft es, den Cache (unter dem Dateimenü) ungültig zu machen und Intellij neu zu starten.

Mary Jane
quelle
4

Ab dem 7. Dezember 2013 ist das Problem behoben. Sie müssen das Scala-Plugin in IntelliJ IDEA aktualisieren (dies gilt sowohl für Community- als auch für ultimative Editionen).

Dies ist der Link zu dem Problem, das auf der Website der JetBrains-Entwicklergemeinde geöffnet wurde: http://devnet.jetbrains.com/thread/451395

David Riccitelli
quelle
Dies scheint nichts mit der ursprünglichen Frage zu tun zu haben. Der Jetbrains-Fehler lautet "Beim Erstellen eines neuen Projekts aus einem vorhandenen SBT-Projekt". Das Problem ist, dass IntellliJ manchmal nicht die neuesten Bibliotheken erhält, selbst wenn der automatische Import aktiviert ist. Wie @alefas betont, muss man manchmal das Neuladen erzwingen (ebven mit einem Scala-Plugin von 2018).
Danio
3

Dies kann auf eine fehlerhafte Veröffentlichung zurückzuführen sein org.jetbrains:sbt-structure:latest.integration, die heute Abend vor etwa 4 oder 5 Stunden stattgefunden hat. Vorausgesetzt, Ihr Beitrag ist 4 Stunden alt ...

Sie können die Efeu-Aktivität in idea.log( ~/Library/Logs/IntelliJIdea13oder ~/Library/Logs/IdeaIC13unter OSX) sehen.

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

Ich habe ein Ticket bei JetBrains geöffnet.

Jeffrey Aguilera
quelle
2
Es sieht so aus, als wäre es ein Problem mit Ivy latest.integration, nachdem das sbt-Repository auf einen anderen Spiegel verschoben wurde. Jetzt wird im Scala-Plugin 0.26.323 die exakte Version des sbt-Struktur-Plugins (1.0.2) aufgelöst, und alles sollte funktionieren. Mit freundlichen Grüßen Alexander Podkhalyuzin.
Alefas
@ Jeffrey, könnten Sie auf das Support-Ticket verlinken? Das neueste Update fügt jetzt ordnungsgemäß neue zusätzliche Abhängigkeiten hinzu, übernimmt jedoch keine Änderungen an der Version einer vorhandenen Abhängigkeit (ich muss die verschiedenen .iml- und .idea / library / SBT_SBT_ .xml- Dateien manuell auf die neue Versionsnummer ändern ). Ich würde dieses Ticket gerne weiterverfolgen.
David B.
1
Mein Ticket war ein Duplikat von SCL-6340
Jeffrey Aguilera
0

Vielleicht funktioniert das nur für irgendeine Art von Projekten, aber in meinem Fall,

Auf der Bibliotheksseite mache ich in sbt:publishLocal

Auf der Clientseite, auf der sich die Bibliothek befindet, klicke ich auf den Menüpunkt. Build -> Build (Ctrl-F9)Manchmal, wenn geöffnete Dateien oder Intellisens noch nicht aktuell sind, mache ich Ctrl-Alt-Y(Menüpunkt File -> Synchronize), um die Datei abzurufen, die die aktualisierte Codebasis widerspiegelt.

Nicht müssen refresh all sbt projectsist für mich schneller.

Hartmut P.
quelle