IntelliJ と PlayFramework と Scala と War

IntelliJ で PlayFramework(Scala) 使ったら最強じゃね?
さらに Warファイルとして出力したら、デプロイも楽だし、攻守最強じゃん!

…と思って、Warファイルを出力するところまで書いてみたのですが、
壁が多かったので、備忘録兼ねてブログに書いてみます。

現バージョン(2015/6/7現在)、Play2.x プロジェクトで開始すると、何故かエラーが発生して先に進めませんでした。

そこで、Activatorプロジェクトで開始して、Hello-Play-Scala テンプレートで開始しました。

動作の確認ということで、コントローラやビューは弄らず、War出力に必要な設定を行っていきます。

最低限必要な設定ということで  project/plugins.sbt と build.sbt をいじります。

// Comment to get more information during initialization
logLevel := Level.Warn

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

// Use the Play sbt plugin for Play projects
addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.2.1")

addSbtPlugin("com.github.play2war" % "play2-war-plugin" % "1.2")

まずは project/plugins.sbt。ここでplay2-war-plugin のバージョンですが、 https://github.com/play2war/play2-war-plugin のREADME.md を参照しました。ちなみに、最初「 2.3-beta2」 にしたところ、エラーでビルドがうまく行きませんでした(´・ω・`) ちゃんと、自分の使っている play2 のバージョンに合わせて指定する必要があるようです。

import play.Project._
import com.github.play2war.plugin._

name := "Uploader"

version := "0.1-SNAPSHOT"

libraryDependencies ++= Seq(
  "org.webjars" %% "webjars-play" % "2.2.2", 
  "org.webjars" % "bootstrap" % "2.3.1",
  "org.squeryl" %% "squeryl" % "0.9.5-6",
  "mysql" % "mysql-connector-java" % "5.1.10"
)

playScalaSettings

Play2WarPlugin.play2WarSettings

Play2WarKeys.servletVersion := "3.0"

次は build.sbt。 今回は Squeryl(with MySQL)を使いたいので、それを依存関係に追加して、War出力関連の設定を書きました。

ちなみに、

Play2WarPlugin.play2WarSettings

Play2WarKeys.servletVersion

ここ2行。間の空欄は必須のようです。空欄がないとエラー(Error parsing expression. Ensure that settings are separated by blank lines.)を吐いて、IntelliJのmake が固まります…(これを解決するのにしばらく時間がかかりました…)。

この状態でターミナルで「sbt war」と打ち込むとtarget以下にwarファイルが出来ました。

めでたし、めでたし。

Spread the love
  •  
  •  
  •  

コメント

タイトルとURLをコピーしました