なんじゃくにっき

プログラミングの話題中心。

Bowler Framework プロジェクト作成

※この記事は4月1日に書かれていますが四月莫迦的な要素は含まれておりません。タブンネ。Maybe.
 
Bowler FrameworkというScala製のRESTfulフレームワークを使ってみます。
http://bowlerframework.org/
Twitter: @bowlerweb
 
ざっくりいうと
・View : Scalate
・Controller: Scalatra
・Model : JPA or Squeryl
な構成のフルスタックFWです。
 
1年くらい前に少し日本のScala界隈でも話題になってたような気もしますが、
最近日本で使ってる人があまりいないみたいなのでプロジェクト作成から。
 
公式ページに載ってるサンプルがsbt 0.7系統のものなので、
sbt 0.11.x用に書き直してみました。
 
/build.sbt


organization := "com.example"

name := "bowler-example"

version := "0.1.0-SNAPSHOT"

scalaVersion := "2.9.1"

seq(webSettings :_*)

libraryDependencies ++= Seq(
"org.bowlerframework" %% "core" % "0.5.1",
"org.slf4j" % "slf4j-nop" % "1.6.0" % "runtime",
"org.scalatra" %% "scalatra-scalatest" % "2.0.0" % "test",
"org.eclipse.jetty" % "jetty-server" % "7.6.0.v20120127" % "test",
"org.eclipse.jetty" % "jetty-webapp" % "7.6.0.v20120127" % "container",
"javax.servlet" % "servlet-api" % "2.5" % "provided",
"org.bowlerframework" %% "squeryl-mapper" % "0.5.1",
"com.h2database" % "h2" % "1.2.144",
"c3p0" % "c3p0" % "0.9.1.2"
)

resolvers += "Sonatype OSS Snapshots" at "http://repo.fusesource.com/nexus/content/repositories/snapshots"

resolvers += "Sonatype OSS Snapshots" at "http://oss.sonatype.org/content/repositories/snapshots/"

resolvers += "Sonatype OSS Snapshots" at "http://oss.sonatype.org/content/repositories/releases/"

※squerylを使うときの設定です。
JPA使うときは変更して下さい。
※最新バージョンは0.6.0ですが、リポジトリにあるのは0.5.1が最新みたい。
 
 
/project/plugins.sbt

libraryDependencies <+= sbtVersion(v => v match {
case "0.11.0" => "com.github.siasia" %% "xsbt-web-plugin" % "0.11.0-0.2.8"
case "0.11.1" => "com.github.siasia" %% "xsbt-web-plugin" % "0.11.1-0.2.10"
case "0.11.2" => "com.github.siasia" %% "xsbt-web-plugin" % "0.11.2-0.2.11"
})

resolvers += "Typesafe repository" at "http://repo.typesafe.com/typesafe/releases/"

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

これで、
/src/main/webappというディレクトリ掘って、
container:startでjettyが起動します。