LoginSignup
18
20

More than 5 years have passed since last update.

Play! frameworkを素でインストールせずにsbtから使う

Posted at

Play! frameworkを空の状態から一つずつファイル・設定を追加していってPlayを動かしてみます。Play! frameworkをインストールしていなくても良いですが、sbtはインストールする必要があります。

一番シンプルなPlay

project/plugins.sbtとbuild.sbtを設定する必要があります。

$ mkdir project
$ vi project/plugins.sbt
// Use the Play sbt plugin for Play projects
addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.2.1")
$ vi build.sbt
play.Project.playScalaSettings

これらを二つの.sbtファイルを設定することで、Play!が依存するライブラリを含めてローディングができるようになり、playの環境を実行できるようになります。

$ sbt play

これを実行すると、いつものPlayのプロンプトが出てくるはずです。

注意: sbtとplayのバージョンの組み合わせには動くモノと動かないモノがあるはずです

ルーティング

さて、この状態でsbt play runすると、localhostの9000番ポートでPlayアプリケーションが待ち受けるのですが、アクセスしてみると、No router defined.と表示されてしまいます。ルーティング設定がされてないためです。

$ mkdir conf
$ vi conf/routes
GET   /   controllers.Application.index

Play の標準的なルーティング設定ですね。これを実行すると今度はobject Application is not a member of package controllersと怒られるようになるので、controllersパッケージにApplicationオブジェクトを作成してindexメソッドを用意します。

$ vi hello.scala
package controllers

import play.api._
import play.api.mvc._

object Application extends Controller {
  def index = Action {
    Ok("Hello, World.")
  }
}

これで、無事Hello, World.がブラウザに表示されたはずです。

まとめ

いつもはplay new コマンドを使ってPlayアプリケーションを書き始めていたんですが、たったこれだけでPlayアプリが書けるとわかったので、たとえば非Playアプリケーションとして作り始めていたものを、やっぱりPlayで作り直すかと思った時(ライブラリ機能とかも考えるとそうそうないとは思うが…)にも、Play の設定を追加するのは簡単!かもしれません。

18
20
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
18
20