コマンドラインの sbt で Scala を始める

Language

このチュートリアルでは、テンプレートから Scala プロジェクトを作成する方法を見ていきます。 あなた自身のプロジェクトを始めるスタート地点として使えます。 Scala のデファクトのビルドツール sbt を用います。 sbt はあなたのプロジェクトに関連した様々なタスク、とりわけコンパイル、実行、テストをしてくれます。 ターミナルの使い方を知っていることを前提とします。

インストール

  1. Java 8 JDK(別名 1.8)がインストールされていることを確認します。
    • コマンドラインで javac -version を実行し、javac 1.8.___ と表示されるのを確認します。
    • バージョン 1.8 かそれ以上がなければ、JDK をインストールします
  2. sbt をインストールします。

プロジェクトを作成

  1. 空のフォルダーに cd
  2. コマンド sbt new scala/hello-world.g8 を実行します。 これは GitHub から ‘hello-world’ というテンプレートを取ってきます。 target フォルダーも作成しますが、無視してください。
  3. 入力をうながされたら、アプリを hello-world と名付けます。 これで “hello-world” というプロジェクトが作成されます。
  4. 生成されたばかりのものを見てみましょう。
- hello-world
    - project (sbt はこのディレクトリを管理プラグインや依存関係のインストールに使います)
        - build.properties
    - src
        - main
            - scala (Scala コードはここに来ます)
                -Main.scala (プログラムの入口) <-- 今のところこれこそが欲しいものです
    build.sbt (sbt のビルド定義ファイル)

プロジェクトをビルドしたら、sbt は生成されるファイルのための target をもっと作るでしょう。 これらは無視してください。

プロジェクトを実行

  1. hello-worldcd
  2. sbt を実行します。sbt コンソールが開くでしょう。
  3. ~run と入力します。~ はオプションで、ファイルが保存されるたびに sbt にコマンドを再実行させるので、すばやい編集/実行/デバッグサイクルを回せます。 sbt は target ディレクトリを作成しますが、無視してください。

コードを修正

  1. お好きなテキストディタでファイル src/main/scala/Main.scala を開きます。
  2. “Hello, World!” を “Hello, New York!” に変更します。
  3. sbt コマンドを停止していなければ、コンソールに “Hello, New York!” と印字されるのが見えるでしょう。
  4. 繰り返し変更してみてコンソールが変化するのを見てみましょう。

依存関係を追加

趣向を少し変えて、アプリに追加機能を加えるために公開ライブラリの使い方を見てみましょう。

build.sbt を開き、以下のファイルを追加します。

  1. build.sbt を開き、以下の行を追加します。
libraryDependencies += "org.scala-lang.modules" %% "scala-parser-combinators" % "1.1.2"

ここで libraryDependencies は依存関係の集合であり、+= を使うことにより、scala-parser-combinators への依存を、sbt が起動時に取得してくる依存関係の集合に加えています。 これで、どの Scala ファイルでも、scala-parser-combinator にあるクラスやオブジェクトなどを通常のインポートでインポートできます。

さらなる公開ライブラリは、Scala ライブラリインデックス Scaladex で見つけられます。 そこでは上述のような依存関係情報をコピーでき、build.sbt ファイルにペーストできます。

次のステップ

sbt で入門 シリーズの次のチュートリアルに進み、コマンドライン で sbt を使って Scala をテストする方法を学びます。

あるいは

  • インタラクティブなオンラインコース Scala Exercises で Scala を学習します。
  • Scala ツアー で Scala の特徴を一口大のサイズでステップバイステップに学びます。

Contributors to this page: