ぬるぬる備忘録

主にシステム系の備忘録とか雑記とかです。備えよう。

ScalaとPlayを始めてみよう - ハロワ編

こんばんは、お久しぶりです。
新年明けたので何か初めてみるかと思いまして、Scalaでも触ってみることにします。
フレームワークPlayに興味があるので、最終的にはそこまで行ければ良いですね。

環境構築

IDEIntelliJ IDEA かEclipseの二択のようですね。
IntelliJの方が主流のようですが、フリーウェア万歳なのでEclipseプラグイン入れて使うことにします。

Eclipseマーケットプレイスから「Scala IDE」をインストールする

入れなくてもIDE上で実行できるが、一応Scala自体も入れておく
http://www.scala-lang.org/download/
(インストール時のバージョンは scala-2.12.1 だった)

環境変数「Path」は勝手に追加されていた。
SCALA_PATH」を新規で作っておく。C:Program Files (x86)scala

さあ始めるぞ

偉大な先人が最初に読むべき物を纏めてくれているので、取り敢えず読んでいこう。

Scala入門時に役立つ情報まとめ - Qiita

とりあえず参考にしてHello Worldまで作っとこう。

f:id:null256:20170103220330p:plain

やったぜ。
classじゃなくてobjectで生成しないと、Eclipse上から実行できなくて少し詰まった。
objectはシングルトンを示す修飾子らしい。

Playを使う...前にsbtを入れよう

作るものも決めてないし、Play使う準備でもしようと思ったら、downloadsに

If you have sbt 0.13.13 or higher installed, you can create your own Play project using sbt new using a minimal giter8 template

 と書いてあって、sbtと言うものを入れたほうが良いらしい。下記記事のようなものらしい、一先ず入れときましょう。
超sbt入門 - Qiita

Eclipseに対応させるには、「sbteclipse」というプラグインの記述を入れたplagin.sbtを「プロジェクトのルート/project」に配置する必要があるようです。
Scala入門記004 sbt + Eclipse - うさばかSE Blog3

頭使わず記事のとおり全てコピペするとエラー出るので、ちゃんとGitHubに書いてある最新版を指定しときましょう。
https://github.com/typesafehub/sbteclipse

addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "5.0.1")

プロジェクトのルートから「sbt eclipse」を実行して、成功すればOK
(追記 .classpathが書き換わるので、これが原因でビルド失敗するようになるときもあるかも。その時はclasspathまわりの設定を見直そう。)

sbtでPlayFrameworkもインストールだ

workspaceのディレクトリで、PlayのDownloadsにある下記コマンドを実行しよう

sbt new playframework/play-scala-seed.g8

必要な情報を聞かれるので、入力するとplayのプロジェクトが出来る
(※何も入力せずにEnterを押すとデフォルト値になる。)

This template generates a Play Scala project

name [play-scala-seed]: testplay //★プロジェクト名
organization [com.example]:
scala_version [2.11.8]:
scalatestplusplay_version [1.5.1]:
play_version [2.5.10]:

Template applied in . estplay

出来たら一先ず動かそう!作ったプロジェクトに移動して「run」だ。

cd testplay

sbt run

「Application started (Dev)」の表示が出たらhttp://localhost:9000/へアクセス

f:id:null256:20170115221714p:plain

うおーこんなにかんたんに動くとは。
で今の状態だとeclipseで見れないので、「/project/plagin.sbt」にsbteclipseの記述を追記して、「sbt eclipse」でする。終わったら「インポート→既存のプロジェクト」でeclipseに取り込む。
念のためもう一回「sbt run」で動くか確認、動く、いいね。

このあと

今回は取り敢えずここまでで。次はheroku辺りにデプロイする方法を調べてみることにする。

scalaの勉強は「Scalaスケーラブルプログラミング」を買ったので、それでやっていくことにする。Playの勉強は...一先ずWEB+DBpressのvol.71かなぁ。。(Playの特集がある)

ではでは。

Scalaスケーラブルプログラミング第3版

Scalaスケーラブルプログラミング第3版

 
WEB+DB PRESS総集編[Vol.1~84] (WEB+DB PRESS plus)

WEB+DB PRESS総集編[Vol.1~84] (WEB+DB PRESS plus)