Scala & Play2 学習ノート(1)
ここ4,5年C#&Azureマンでやってきましたがこの度転職する運びとなり、新しい職場ではScala&AWSが中心と聞いているので集中的に勉強してみようかと思い学習の経過・メモを記事に残していくつもりです。
ちなみにScala自体は全くの未経験というわけではなく、個人的に勉強して納品とは関係の無い業務ツールを作っていた時期(ソースを見るとScala 2.10.2時代)があります。
かなり忘れている部分もあるのでリハビリを兼ねつつボチボチ画像少なめメモ中心でやっていきます。
環境作成
sbt インストール
なにはなくとも sbt。Macならbrewでinstallするだけ。
$ brew install sbt
sbt および Scalaのバージョンを確認するには sbt about。
$ sbt about
[info] Loading project definition from /Users/xxxx/project
[info] Set current project to xxxx (in build file:/Users/xxxx/)
[info] This is sbt 1.1.6
[info] The current project is ProjectRef(uri("file:/Users/xxxx/"), "xxxx") 0.1.0-SNAPSHOT
[info] The current project is built against Scala 2.12.6
[info] Available Plugins: sbt.plugins.IvyPlugin, sbt.plugins.JvmPlugin, sbt.plugins.CorePlugin, sbt.plugins.JUnitXmlReportPlugin, sbt.plugins.Giter8TemplatePlugin
[info] sbt, sbt plugins, and build definitions are using Scala 2.12.6
IntelliJ インストール
昔は Ultimate じゃないと Scala が使えなかった気がしますがその頃買ったライセンスも切れているし Community 2018.1 をインストール。
セットアップ中に Scala Plugin を入れられるのでそこでインストール。
インストールが終わったら New Project で Scala を選択。ライブラリが未設定なので右の"Create..." から Scalaのバージョンを選択し、グローバルのバージョンとして設定。
Hello Scalaする
IntelliJ 上で実行
object Hello {
def main(args: Array[String]): Unit = {
println("Hello Scala")
}
}
パパっとメインクラスを作ってメインクラスで右クリックして実行。
Class JavaLaunchHelper is implemented in both /Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/bin/java 〜
Hello Scala
実行はできるけど赤字でなんか出てくるので嫌な感じがしますが、ここ によると
Macの古いJavaの問題で無害らしい。後でJava入れ直しましょう。
sbtで実行
これはこれで簡単に動かせて悪くはないのですがやっぱり sbt で動かしたいので sbt プラグインを入れる。
sbtプラグインを入れて IntelliJ を再起動し、今度は sbtベースのプロジェクトを作成。
先程と同様にメインクラスを作り、今度は"Edit Configuration" から sbt run を行う sbt Taskを追加。
タスクを実行すると
[info] Loading project definition from /Users/yossy6954/IdeaProjects/HelloScalaSbt/project
[info] Loading settings from build.sbt ...
[info] Set current project to HelloScalaSbt (in build file:/Users/yossy6954/IdeaProjects/HelloScalaSbt/)
[info] Running com.yossy6954.HelloScalaSbt
Hello Scala
[success] Total time: 1 s, completed 2018/06/14 19:57:55
動きました。ターミナルでプロジェクトのディレクトリに移動し、sbt run でも同様に動作します。
次からは Play2 やっていきます。