Technofara

Golangエンジニア!仕事で必要になって勉強した事とか、新しい事とか色々まとめたりを緩くやります。技術系と思考系だけにしておきます、

macでscala + PlayFramework2を動かして見た(Java初心者)

「PlayFramework2が驚くほど早い!」という記事(http://shanon-tech.blogspot.jp/2012/10/playframework2.html)を見て 試してみたいと思い java初心者がscala + PlayFramework2をboxenを使って入れてみたお話

準備

まずは、scalaとplayをインストール

homebrewでいれれる!

brew install scala
brew install play

※僕はboxenを使ってるので、以下を追加して、インストール

package {
  [
    'scala',
    'play'
  ]:;
}

あと、JDKが必要

http://support.apple.com/kb/DL1572?viewlocale=ja_JP&locale=ja_JP からダウンロードして、インストールする。

この記事作成時は、以下のURLで取得可能 http://support.apple.com/downloads/DL1572/ja_JP/JavaForOSX2013-05.dmg

※僕はboxenを使ってるので、以下を追加して、インストール

package {
  'Java':
  provider => 'pkgdmg',
  source => 'http://support.apple.com/downloads/DL1572/ja_JP/JavaForOSX2013-05.dmg';
}

確認

java入ったかなー?

$ java -version
java version "1.6.0_65"
Java(TM) SE Runtime Environment (build 1.6.0_65-b14-462-11M4609)
Java HotSpot(TM) 64-Bit Server VM (build 20.65-b04-462, mixed mode)

scala入ったかなー?

$ scala 
Welcome to Scala version 2.10.3 (Java HotSpot(TM) 64-Bit Server VM, Java 1.6.0_65).
Type in expressions to have them evaluated.
Type :help for more information.

scala> :quit

play入ったかなー?

$ play help
       _
 _ __ | | __ _ _  _
| '_ \| |/ _' | || |
|  __/|_|\____|\__ /
|_|            |__/

play 2.2.1 built with Scala 2.10.2 (running Java 1.6.0_65), http://www.playframework.com
Welcome to Play 2.2.1!

These commands are available:
-----------------------------
license            Display licensing informations.
new [directory]    Create a new Play application in the specified directory.

You can also browse the complete documentation at http://www.playframework.com.

問題なし!!

じゃぁ試してみる!

まずは作業用ディレクトリへ移動

$ cd /work/to/path

play コマンドで simple scala application を作成

$ play new hoge
       _
 _ __ | | __ _ _  _
| '_ \| |/ _' | || |
|  __/|_|\____|\__ /
|_|            |__/

play 2.2.1 built with Scala 2.10.2 (running Java 1.6.0_65), http://www.playframework.com

The new application will be created in /work/to/path/hoge

What is the application name? [hoge]
> 

Which template do you want to use for this new application? 

  1             - Create a simple Scala application
  2             - Create a simple Java application

> 1
OK, application hoge is created.

Have fun!

確認!!

$ tree hoge/
hoge/
├── README
├── app
│   ├── controllers
│   │   └── Application.scala
│   └── views
│       ├── index.scala.html
│       └── main.scala.html
├── build.sbt
├── conf
│   ├── application.conf
│   └── routes
├── project
│   ├── build.properties
│   └── plugins.sbt
├── public
│   ├── images
│   │   └── favicon.png
│   ├── javascripts
│   │   └── jquery-1.9.0.min.js
│   └── stylesheets
│       └── main.css
└── test
    ├── ApplicationSpec.scala
    └── IntegrationSpec.scala

10 directories, 14 files

これで簡単なアプリケーションの作成が完了したのかな?

じゃぁ動かしてみる

アプリケーションディレクトリ内へ移動

$ cd hoge

コンパイル開始+起動

$ play run
[info] Loading project definition from /work/to/path/hoge/project
[info] Set current project to hoge (in build file:/work/to/path/hoge/)
[info] Updating {file:/work/to/path/hoge/}hoge...
[info] Resolving org.fusesource.jansi#jansi;1.4 ...
[info] Done updating.

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

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

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

[info] Compiling 5 Scala sources and 1 Java source to /work/to/path/hoge/target/scala-2.10/classes...
[info] play - Application started (Dev)

コンパイルとかしてるので、時間はかかる。 play - Application startedが表示されたら起動完了 あとは、ブラウザで以下のURLを表示できれば、導入〜サンプル作成は完了

http://localhost:9000/