yujiro's blog

webエンジニアをしています。

Scala PlayFramework でアプリケーション作ってみた。① 【環境構築編】

Scala に挑戦してみました。

Mojolicious でアプリケーションをつくってみた① - yujiro's blog

で作ったのと同じメモ帳アプリケーションをScalaとPlayframeworkを使い作ってみました。

結構時間かかりました。難しかった。

ソースコードは以下にあります。

github.com

一応、機能的には

  • ログイン機能
  • belongsTo, hasMany, manyToMany アソシエーション
  • ページング
  • Form(バリデーション有り)

などあるので、これを見れば一通りのことはできるんじゃないかと思います!

環境、バージョン

OS : Ubuntu14.04

言語 : Scala-2.11.11 (scalaenv)

Framework : PlayFramework 2.5

DB : MySQL 5.5

ORM : Skinny-ORM

エディタ : Vim

Scala, Playframework インストール手順

scalaenv導入

$ git clone git://github.com/mazgi/scalaenv.git ~/.scalaenv

他の言語にもよくあるバージョンを容易に切り替えられるやつです

パス通す

$ vi ~/.zshrc

export SCALA_ROOT="${HOME}/.scalaenv"
if [ -d "${SCALA_ROOT}" ]; then
   export PATH=${SCALA_ROOT}/bin:$PATH
   eval "$(scalaenv init -)"
fi

$ source ~/.zshrc

これはパスが通ればなんでもよいです。

インストールできるバージョンの確認

$ scalaenv install -l

2.11.11をインストール

$ scalaenv install scala-2.11.11

適用

$ scalaenv rehash

コマンド群を ~/.scalaenv/shims/ にいれて使えるようにする

2.11.11をシステムワイドに適用

$ scalaenv global scala-2.11.11

バージョン確認

$ scala -version

/home/vagrant/.scalaenv/versions/scala-2.11.11/bin/scala: line 23: java: command not found と表示される。java を入れる必要がある。

java8をインストール

$ sudo add-apt-repository ppa:webupd8team/java

リポジトリ追加

$ sudo apt-get update

$ sudo apt-get install oracle-java8-installer

インストール

$ java -version

java version "1.8.0_144"

$ scala -version

Scala code runner version 2.11.11 -- Copyright 2002-2017, LAMP/EPFL

sbt のインストール

$ echo "deb https://dl.bintray.com/sbt/debian /" | sudo tee -a /etc/apt/sources.list.d/sbt.list

$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2EE0EA64E40A89B84B2DF73499E82A75642AC823

$ sudo apt-get update

$ sudo apt-get install sbt

activator のインストール & パス通す

$ wget https://downloads.typesafe.com/typesafe-activator/1.3.7/typesafe-activator-1.3.7.zip

$ unzip typesafe-activator-1.3.7.zip

$ sudo mv activator-dist-1.3.7 /opt

$ sudo ln -s /opt/activator-dist-1.3.7/activator /usr/local/sbin/activator

プロジェクトの作成

$ cd /var/www/

どこでも大丈夫です。

$ activator new scala-play-sample play-scala

起動

$ activator run -Dhttp.address=192.168.33.60 -Dhttp.port=9007

続き

Scala PlayFramework でアプリケーション作ってみた。② 【Controller(View)編】 - yujiro's blog