現在私は、ScalaのScalatraというフレームワークで書かれた開発プロジェクトをわけあって引き継いでおります。
前に作っていた人は、現在うちの会社で別の仕事をしているのですが、その人は開発環境とかあんまり気にしないタイプで、テキストエディタ的にVisual Studio Codeを使っていたということです。
ただ、私は開発環境でデバッグとかしながら開発したい派です。Android Studioとかも使っていて親しみがあるので、IntelliJ IDEAでやってやろうと思いました。
しかし、いきなりIntelliJにScalatraのコードをブチこんでも全然うまくいかなかったんですよ。Scalatraのバージョンは2.6.5です。
というわけで、まずは初心にかえり、超簡単なプロジェクトをIntelliJで作ってみます。
環境は、Windows10 + IntelliJ IDEAコミュニティバージョン2020.1です。
ここで、とっても大事な話をします。
sbtで動かすScalaプロジェクトと、sbtを使わないScalaプロジェクトは、IntelliJに最初の導入をする部分で違います。
ここ間違うと、私みたいにはまります。(ノω・、) ウゥ・・・
最初、下記のページを見てやってたんですよ。
Intellij で sbt を使って Scala プロジェクトをビルドする
https://docs.scala-lang.org/ja/getting-started/intellij-track/building-a-scala-project-with-intellij-and-sbt.html
File→New→Projectと行くと、下記のような画面になりますが、
![](https://i2.wp.com/oc-technote.com/wp-content/uploads/2020/07/image-2.png?fit=525%2C338&ssl=1)
↑ここでScalaを選択してはダメです。
↓下記のように、左がScalaで、右がsbtを選択しましょう。
![](https://i0.wp.com/oc-technote.com/wp-content/uploads/2020/07/image-3.png?w=525&ssl=1)
今回は、サンプルなので、気を付ける場所はここだけです。
Nextを押して、プロジェクトの保存場所を選択して、OKをクリックします。
プロジェクトを作ると、sbtの構成を、IntelliJが作ってくれるので、多少時間がかかります。
サンプルとして、さっきも紹介した下記のサイトにあるサンプルコードを書いておきます。
object Main extends App {
val ages = Seq(42, 75, 29, 64)
println(s"The oldest person is ${ages.max}")
}
画面の一番下に、sbt shellというタブがあります。
![](https://i2.wp.com/oc-technote.com/wp-content/uploads/2020/07/image-4.png?fit=525%2C424&ssl=1)
これで、
「ん~ 動くのかな?」
ということで、run と打ち込んでも、何も起こりません。
「動け、動け、動け、動いてよ~!!」
と泣き叫びたくなりますが、落ち着きましょう(´ω`)。
File→Setting→Build, Excution…→Build Tools→sbtの画面で
Use sbt shellとあるところのチェックボックスを二つチェックします。
![](https://i0.wp.com/oc-technote.com/wp-content/uploads/2020/07/image-5.png?fit=525%2C381&ssl=1)
OKをクリックして、sbt shellのところでもう一度、run って入力します。
すると、ちゃんと動作して、プログラムの実行結果がsbt shellに表示されました!
![](https://i0.wp.com/oc-technote.com/wp-content/uploads/2020/07/image-7.png?fit=525%2C469&ssl=1)
The oldest person is 75
ってやつが実行結果ですね。