web-dev-qa-db-ja.com

Scala REPLでサードパーティのライブラリを使用するには?

Algebirdをダウンロードしました。このライブラリを使用してScalaインタープリターでいくつか試してみたいと思います。どうすればこれを達成できますか?

68

もちろん、scala -cp何でも使用でき、依存関係を手動で管理できます。しかし、特に複数の依存関係がある場合、それは非常に面倒になります。

より柔軟なアプローチは、 sbt を使用して依存関係を管理することです。使用するライブラリを search.maven.org で検索します。たとえば、Algebirdは、単に algebirdを検索 で使用できます。次に、そのライブラリを参照するbuild.sbtを作成し、ディレクトリを入力してsbt consoleを入力します。すべての依存関係をダウンロードして、クラスパス上のすべての依存関係でscalaコンソールセッションを自動的に開始します。

scalaバージョンまたはライブラリバージョンのようなものを変更することは、build.sbtの単なる変更です。再生するには、scala build.sbtだけの空のディレクトリで十分です。

Algebirdを使用するためのbuild.sbtは次のとおりです。

name := "Scala Playground"

version := "1.0"

scalaVersion := "2.10.2"

libraryDependencies += "com.Twitter" % "algebird-core" % "0.2.0"

編集:多くの場合、ライブラリをいじりたいとき、最初にやらなければならないことは、ライブラリの名前空間をインポートすることです。次の行を追加することにより、build.sbtでこれを自動化することもできます。

initialCommands in console += "import com.Twitter.algebird._"
99
Rüdiger Klaehn

ランニング sbt consoleは、テストスコープで宣言されたライブラリをインポートしません。 REPLでこれらのライブラリを使用するには、次のコマンドでコンソールを起動します

sbt test:consoleQuick

ただし、この方法でコンソールを起動すると、テストソースのコンパイルがスキップされることに注意してください。

ソース: http://www.scala-sbt.org/0.13/docs/Howto-Scala.html

11
Zoltán

Scalaの-cpスイッチを使用して、jarをクラスパスに保持できます。さまざまな警告をオンにするための-deprecation-uncheckedなど、他のスイッチも使用できます。 scala -X...およびscala -Y...でさらに多くの情報が見つかります。これらのスイッチの詳細については、scala -helpをご覧ください。

6
S.R.I