UbuntuにScala(sbt)をインストールする
前回の記事「Ubuntu18.04環境にOpenJDK8をインストールしてjavaを動かしてみる」でJDKの導入が完了しました。
今回はJDKを前提に動作する言語「Scala」をインストールしてみようと思います。
公式サイトの手順に従い、対応するOSの手順でインストールしていきます。
前提環境
- OpenJDK (8 or 11) <- 前回記事で構築済み
- Ubuntu (18.04.4 LTS)
インストール
公式の通りインストールしていく。 前提環境がDebian系なので、「Linux(deb)」に従う。
$ echo "deb https://dl.bintray.com/sbt/debian /" | sudo tee -a /$ $ etc/apt/sources.list.d/sbt.list
$ curl -sL "https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x2EE0EA64E40A89B84B2DF73499E82A75642AC823" | sudo apt-key add
$ sudo apt-get update
$ sudo apt-get install sbt
上記が完了したら、sbtによりScalaのプロジェクト作成・実行が可能になります。
バージョン確認方法は、以下の通り。
$ sbt about
sbtプロジェクトを作成し、Hello, worldしてみる
まず、空のディレクトリを掘って移動します。
$ mkdir [project_name]
$ cd [project_name]
次にGitHub上の「hello-world」テンプレートをsbtコマンドで取得していきます。
取得したテンプレートをもとにプロジェクトの作成が始まります。
ターミナル上で対話が始まり、プロジェクト名を聞かれるので「hello-world」としておきます。
$ sbt new scala/hello-world.g8
~ 省略 ~
[info] resolving Giter8 0.13.1...
A template to demonstrate a minimal Scala application
name [Hello World template]: hello-world // <- ここでプロジェクト名を入力
Template applied in /home/[user_name]/sbt1/./hello-world
プロジェクトの構造は以下のようになっているようです。
.
├── hello-world
│ ├── build.sbt
│ ├── project
│ │ └── build.properties
│ └── src
│ └── main
│ └── scala
│ └── Main.scala
└── target
└── streams
└── _global
└── _global
└── checkBuildSources
└── _global
├── inputFileStamps
│ └── previous
└── streams
└── out
13 directories, 5 files
作成されたディレクトリ「hello-world」にcdで入り、sbtを起動します。
sbtの起動にはしばらく時間がかかるので気長に待ちましょう。
$ cd hello-world
$ sbt
しばらくするとsbtコンソールが起動するので、~runを実行してみます。
sbt:hello-world> ~run
[info] running Main
Hello, World!
[success] Total time: 1 s, completed 2020/07/02 22:00:19
[info] 1. Monitoring source files for hello-world/run...
[info] Press <enter> to interrupt or '?' for more options.
※ 先頭のオプション「~」をつけることで、
ソースファイルを保存する度 sbt に自動的に再コンパイルを実行させ、
編集〜コンパイル〜テストのサイクルを速めることができます。
このターミナルを起動したまま「src/main/scala/Main.scala」を修正してみましょう。
$ vim src/main/scala/Main.scala
object Main extends App {
println("おはよう、世界!")
}
再度、起動中のsbtコンソールを確認してみると
[info] Build triggered by /home/<user_name>/sbt1/hello-world/src/main/scala/Main.scala. Running 'run'.
[info] Compiling 1 Scala source to /home/<user_name>/sbt1/hello-world/target/scala-2.13/classes ...
[info] running Main
おはよう、世界!
[success] Total time: 6 s, completed 2020/07/02 22:06:15
[info] 2. Monitoring source files for hello-world/run...
[info] Press <enter> to interrupt or '?' for more options.
修正した内容がライブリロードされています。
まだいろいろできそうですが、今回は動作確認のため、ここまでにしようと思います。
では、またお会いしましょう!