2017-12-28 24 views
0

IntelliJがScalaスクリプトでAmmoniteのインポートを認識できなくなりました。これは新機能で、指示があるhereと報告されています。私は指示に従い、IntelliJの新しいsbtプロジェクトを試してみましたが、うまくいきません。IntelliJにScalaスクリプトのインポートを認識させるにはどうすればよいですか?

は私がbuild.sbtで指定したプロジェクトの「外部ライブラリ」、でアンモナイトの依存関係を参照してください。 libraryDependencies += "com.lihaoyi" %% "ammonite-ops" % "1.0.3" libraryDependencies += "com.lihaoyi" % "ammonite" % "1.0.3" cross CrossVersion.full

(非常に簡単)プロジェクトが正常にビルドするようです。また、Scalaのワークシートファイルを「常にAmmonite」として扱うように指定しました。

すべてこの、まだIDEが示しようなスクリプト: enter image description here

より多くの私はこの作業を取得するために何が必要ですか?

バージョン:

  • のJava 1.8.0
  • スカラ座2.12.4
  • SBT 1.0.3
  • のIntelliJ CE 2017年3月2日
  • のIntelliJのScalaプラグイン2017年3月11日
+0

私が気づいたことの一つは、過渡的な依存関係が残念ながらスコープに取り込まれていないことです。例えば、 'circe'ライブラリを取得してIntelliJをダウンロードしても、' cats'ライブラリ( 'circe'が依存しています)のインポートを解決できません。 –

答えて

3

私はIntelliJと同様の問題を抱えていました。

マイバージョン:

  • IntelliJの究極の2017年3月2日(あなたのように、基本的には同じバージョン)
  • IntelliJのScalaのプラグイン2017年3月11日
  • Kubuntuの、キーボードショートカットを以下に調整されなければならないのであなたが持っているよう

今、私は依存0.6.7の更新バージョンで、同じコードからを開始しました。 Staring code

すでに緑色の矢印を押して1行目の隣に移動すると、Ammoniteが実行されます。依存関係がダウンロードされ、リンクが表示されます。 これは、IntelliJが新しいjarが利用可能であることを認識するための必須のステップです。

また、この段階でIntellijは小さなポップアップを表示して、私が瓶をインポートできるという情報を表示します。 私はそれを使用しなかったImport $ivy dependencies

IntelliJのは、輸入を認識させるために、私はAltキー + 壊れcom.lihaoyi::scalatags:0.6.7依存関係に表示する意向アクションを入力して、jarファイルからライブラリを作成を使用するを押す... Create library from jar...

このIntellijが図書館、輸入品を認識し、あなたにヒントを与えることができます。 enter image description here

ライブラリはプロジェクトの依存関係(はCtrl +Altキー + Shiftキー + )に追加されます。以下の他のファイルからの依存関係も見ることができます。 Project structure with added dependency

+0

フォームを0.6.0から0.6.7に変更することを忘れました:)そのバージョンはMavenリポジトリにはありませんでした。また、JARからlibを作成する前に 'amm'をダウンロードして' pom'をダウンロードするスクリプトを最初に実行する必要があります。これはプラグインが動作する方法ではないようですが、ちょっと、動作しています! – einnocent

+0

ありがとう@einnocent、私は将来の世代のためにあなたのフィードバックをもとに答えを更新しました。 –

0

アンモニアと.scファイルを関連付ける必要があります。あなたの設定で

、それはこの enter image description here (溶液がhereから撮影)

のようになります。また、私はあなたがすべて持たせる(をサポートアンモナイトスクリプトにスクロールダウン)以下blog postを読むことをお勧めします必要な要件

+0

ありがとうございます。 Scalaのワークシートファイルは "Always Ammonite"として扱われるべきです。また、質問では、あなたが言及したブログ記事にリンクしました。また、あなたがリンクしているソリューションで、私は数日前にコメントしました:) – einnocent

関連する問題