Playframework2 for Scala の事始め


##開発環境

PC: MacOS X 10.9.4
eclipse : Kepler Service Release 1

`Play2 for Scala`を久しぶりに触ってみようかと思った。
どうやら、昔と違って`play`コマンドでプロジェクトを作成するのではなく、`activator`なるものが取って代わっているらしい。
そこで、activatorをダウンロードし解凍して、適当なディレクトリに展開する。そしてコマンドのPathを通すために、`~/.bash_profile`に下記を記述する。

```
$ vi ~/.bash_profile
export PATH=$PATH:/usr/local/activator1.2

$ source .bash_profile
$ which activator
/usr/local/activator1.2/activator
```

作業ディレクトリへ移動して、プロジェクトを作成するために`activator new`で、プロジェクト作成コマンドを実行する。

```
$ cd WorkSpace/

$ activator new PlaySample
Getting com.typesafe.activator activator-launcher 1.2.10 ...

・・・中略・・・

:: retrieving :: org.scala-sbt#boot-scala
	confs: [default]
	6 artifacts copied, 0 already retrieved (24060kB/43ms)

Fetching the latest list of templates...
```

どうやら、テンプレートとやらを指定するらしい。
今回は、`Play-scala`プロジェクトを作成したいので、`6`を選択。

```
Browse the list of templates: http://typesafe.com/activator/templates
Choose from these featured templates or enter a template name:
  1) minimal-akka-java-seed
  2) minimal-akka-scala-seed
  3) minimal-java
  4) minimal-scala
  5) play-java
  6) play-scala
(hit tab to see a list of all templates)
> 6
```

PlaySampleのプロジェクトが生成されている。

```
$ ls -la
total 0
drwxr-xr-x   7 hogehoge  staff  238 10 31 17:33 .
drwxr-xr-x  23 hogehoge  staff  782 10 25 20:45 ..
drwxr-xr-x  14 hogehoge  staff  476 10 31 17:33 PlaySample
$ cd PlaySample/
$ ls -la
total 2400
drwxr-xr-x  14 hogehoge  staff      476 10 31 17:33 .
drwxr-xr-x   7 hogehoge  staff      238 10 31 17:33 ..
-rw-r--r--   1 hogehoge  staff      141 10 31 17:33 .gitignore
-rw-r--r--   1 hogehoge  staff      591 10 31 17:33 LICENSE
-rw-r--r--   1 hogehoge  staff      148 10 31 17:33 README
-rwxr--r--   1 hogehoge  staff     9680 10 31 17:33 activator
-rw-r--r--   1 hogehoge  staff  1188339 10 31 17:33 activator-launch-1.2.10.jar
-rwxr--r--   1 hogehoge  staff     7110 10 31 17:33 activator.bat
drwxr-xr-x   4 hogehoge  staff      136 10 31 17:33 app
-rw-r--r--   1 hogehoge  staff      206 10 31 17:33 build.sbt
drwxr-xr-x   4 hogehoge  staff      136 10 31 17:33 conf
drwxr-xr-x   4 hogehoge  staff      136 10 31 17:33 project
drwxr-xr-x   5 hogehoge  staff      170 10 31 17:33 public
drwxr-xr-x   4 hogehoge  staff      136 10 31 17:33 test
```

##eclipseプロジェクトとして生成

開発ツールとして、`eclipse`を使用したいので、`activator eclipse` でeclipse対応にする。

```
$ activator eclipse
[info] Loading project definition from /Users/hogehoge/Workspace/PlaySample/project
[info] Updating {file:/Users/hogehoge/Workspace/PlaySample/project/}playsample-build...
Waiting for lock on /Users/hogehoge/.ivy2/.sbt.ivy.lock to be available...


・・・中略・・・

[info]   Compilation completed in 17.658 s
[info] Successfully created Eclipse project files for project(s):
[info] PlaySample
```

##eclipseプロジェクトのインポート

結構な時間を待った後、`eclipse Project`として生成されているので、`eclipse`にインポートする。

![スクリーンショット 2014-10-31 18.27.39.png](https://qiita-image-store.s3.amazonaws.com/0/3184/31e16ffd-3b8c-2c92-32b6-1546132e57a5.png "スクリーンショット 2014-10-31 18.27.39.png")

該当のディレクトリを選択する。

![スクリーンショット 2014-10-31 18.28.05.png](https://qiita-image-store.s3.amazonaws.com/0/3184/21b6af42-4e04-76a4-e5e8-ef558ec53c75.png "スクリーンショット 2014-10-31 18.28.05.png")


![スクリーンショット 2014-10-31 18.28.49.png](https://qiita-image-store.s3.amazonaws.com/0/3184/664543c0-a3d3-4440-1767-2c99a8ced51a.png "スクリーンショット 2014-10-31 18.28.49.png")

ちなみに、`eclipse`プロジェクト内に独自の`scala`がインストールされている。
どおりでプロジェクト作成が遅かったはずだ…。

![スクリーンショット 2014-10-31 18.30.20.png](https://qiita-image-store.s3.amazonaws.com/0/3184/7f729c40-49d0-74f2-c1e0-bc8f3f24644a.png "スクリーンショット 2014-10-31 18.30.20.png")

##サーバの起動

`activator run`コマンドによって、サーバ起動をしてみる


```
$ activator run
[info] Loading project definition from /Users/hogehoge/Workspace/PlaySample/project
[info] Set current project to PlaySample (in build file:/Users/hogehoge/Workspace/PlaySample/)

--- (Running the application from SBT, auto-reloading is enabled) ---

[info] play - Listening for HTTP on /0:0:0:0:0:0:0:0:9000

(Server started, use Ctrl+D to stop and go back to the console...)

[info] Compiling 1 Scala source to /Users/hogehoge/Workspace/PlaySample/target/scala-2.11/classes...
[info] play - Application started (Dev)
```


http://localhost:9000/ でアプリが起動している。

![スクリーンショット 2014-10-31 18.58.15.png](https://qiita-image-store.s3.amazonaws.com/0/3184/d8314eb9-dcd0-9e29-fc20-c95951b68520.png "スクリーンショット 2014-10-31 18.58.15.png")



今回はここまで。