PlayFramework2.3でactivator runしたときにgulpも起動する方法です。
元ネタはPlay Framework で開発用Webサーバと同時に grunt/gulp を起動する - はこべブログ ♨ですが、こちらの記事の方法では、Playの2.3からplay.Project.playScalaSettings
が無くなったので、うまく動きませんでした。
いろいろ調べてみたら、build.sbtでimport play.PlayImport.PlayKeys.playRunHooks
したら動きました。
build.sbt
name := """new-ui"""
version := "1.0-SNAPSHOT"
lazy val root = (project in file(".")).enablePlugins(PlayScala)
scalaVersion := "2.11.6"
libraryDependencies ++= Seq(
jdbc,
anorm,
cache,
ws,
"jp.t2v" %% "play2-auth" % "0.13.2",
"jp.t2v" %% "play2-auth-test" % "0.13.2" % "test"
)
import play.PlayImport.PlayKeys.playRunHooks
playRunHooks += RunSubProcess("gulp watch")
project/RunSubProcess.scalaを作っておきます。
project/RunSubProcess.scala
import sbt._
import play.PlayRunHook
object RunSubProcess {
def apply(command: String): PlayRunHook = {
object RunSubProcessHook extends PlayRunHook {
var process: Option[Process] = None
override def beforeStarted(): Unit = {
process = Some(Process(command).run)
}
override def afterStopped(): Unit = {
process.map(p => p.destroy())
process = None
}
}
RunSubProcessHook
}
}