2017-12-28 5 views
0

Ich habe Probleme, IntelliJ in meinem Scala-Skript Ammonit-Importe zu erkennen. Dies ist ein neues Feature, berichtet here, wo es auch Anweisungen gibt. Ich folgte den Anweisungen und startete ein neues sbt-Projekt in IntelliJ, um es auszuprobieren, aber es funktioniert nicht.Wie kann IntelliJ Importe in Scala-Skript erkennen?

Ich sehe die Ammoniten Abhängigkeiten in dem „Externen Bibliotheken“ des Projektes, die ich in den build.sbt angegeben: libraryDependencies += "com.lihaoyi" %% "ammonite-ops" % "1.0.3" libraryDependencies += "com.lihaoyi" % "ammonite" % "1.0.3" cross CrossVersion.full

Das (ganz einfach) Projekt scheint erfolgreich zu bauen. Ich habe auch angegeben, dass Scala-Arbeitsblattdateien wie "Immer Ammonit" behandelt werden sollten.

All dies, aber die IDE zeigt das Skript wie: enter image description here

Was brauche ich, um dies zu tun ist, um zu arbeiten?

Versionen:

  • Java 1.8.0
  • Scala 2.12.4
  • sbt 1.0.3
  • IntelliJ CE 2017.3.2
  • IntelliJ scala Plugin 2017.3.11
+0

Eine Sache, die ich bemerkte, ist, dass transitive Abhängigkeiten leider nicht in den Geltungsbereich gezogen werden. Zum Beispiel, wenn ich in 'circe' Bibliothek ziehe und IntelliJ download habe, bin ich immer noch nicht in der Lage, Import für' cats' library (welcher 'circe' hängt davon ab) –

Antwort

3

Ich hatte ähnliche Probleme mit IntelliJ, also lassen Sie mich teilen, wie ich es funktionierte.

Meine Versionen:

  • IntelliJ ultimative 2017.03.02 (also im Grunde die gleiche Version wie Ihre)
  • IntelliJ Scala Plugin 2017.3.11
  • Kubuntu, unter so Tastenkombinationen eingestellt werden müssen, kann

Nun begann ich aus dem gleichen Code wie Sie haben, mit aktualisierte Version der Abhängigkeit 0.6.7. Staring code

Bereits jetzt drückt der grüne Pfeil neben der 1. Linie Ammonit. Die Abhängigkeiten werden heruntergeladen und der Link wird angezeigt. Das ist obligatorisch Schritt für IntelliJ zu erkennen, dass neues Glas verfügbar ist.

Auch in diesem Stadium zeigt Intellij mir ein kleines Popup mit Informationen, dass ich das Glas importieren kann. Ich habe es nicht verwendet. Import $ivy dependencies

Um IntelliJ die Einfuhren zu erkennen, ich Alt drücken + anzeigen Intention Aktionen auf der gebrochenen com.lihaoyi::scalatags:0.6.7 Abhängigkeit eingeben und Bibliothek von jar erstellen verwenden ... Create library from jar...

Diese macht Intellij erkennt die Bibliothek, importiert und es kann Ihnen Tipps geben. enter image description here

ist die Bibliothek auf die Abhängigkeiten des Projekts hinzugefügt (Ctrl +Alt + Umschalt +s). Sie können auch Abhängigkeiten sehen, die von anderen Dateien kommen. Project structure with added dependency

+0

Sie haben vergessen, die Änderung von 0.6.0 auf 0.6.7 zu erwähnen :) Diese Version fehlte im Maven Repo. Außerdem müssen Sie das Skript zuerst ausführen, um 'amm' zu erhalten, um' 'pom's herunterzuladen, bevor es die Bibliothek von jar erstellt. Scheint so, als ob das Plugin nicht funktionieren würde, aber hey, es funktioniert! – einnocent

+0

Dank @einnocent, habe ich die Antwort mit Ihrem Feedback für zukünftige Generationen aktualisiert. –

0

müssen Sie .sc-Dateien mit Ammoniten verknüpfen.

in Sie Einstellungen, sollte es so enter image description here (Lösung von here genommen) buchen,

ich auch die (nach unten scrollen zu Ammoniten Skripte unterstützen) nach blog post lesen würde empfehlen, um sicherzustellen, dass Sie alle haben benötigte Anforderungen

+0

Danke, aber ich tat das schon: 'Ich habe auch angegeben Diese Scala-Arbeitsblattdateien sollten wie "Immer Ammonit" behandelt werden. In der Frage habe ich mich auch mit dem von Ihnen erwähnten Blogbeitrag verbunden. Auch in der Lösung, zu der Sie verlinken, habe ich vor ein paar Tagen dort kommentiert: – einnocent

Verwandte Themen