Como criar um aplicativo do Play Scala 2.2 como um subprojeto do SBT

Eu estou tentando criar um aplicativo Scala que consiste em um projeto de biblioteca (vamos chamar issocommon), um projeto de servidor Thrift (vamos chamar issoserver) e um projecto de aplicação web Play (a seguir denominadoweb). Todos os três são escritos em Scala e construídos com sbt.

Minha estrutura de projeto é assim:

myproject/
-common/
  ...
-server/
  ...
-web/
  -app/
  -conf/
  ...
-project/
  -Build.scala
  -build.properties
-build.sbt

Minhasbuild.sbt arquivo (simplificado um pouco) se parece com isso:

import play.Project._

name := "myproject"

version := "1.0-SNAPSHOT"

lazy val common = project

lazy val web = project
    .settings(playScalaSettings: _*)
    .dependsOn(common)

lazy val server = project
    .dependsOn(common)

lazy val root = project.in(file("."))
    .aggregate(common, web, server)

O problema com isso é que o projeto raiz não é um projeto Play, então oplay comando não funciona (erros com

java.lang.RuntimeException: */*:playRunHooks is undefined.
at scala.sys.package$.error(package.scala:27)

Eu posso consertar isso fazendo com que o projeto raiz pareça um projeto do Google Play se eu inserir a linhaplayScalaSettings depois deversion linha no arquivo SBT, mas depois eu tenho outro problema: oplay run comando tenta executar o projeto raiz, não oweb subprojeto. Obviamente, oplay run comando não funciona quando executado noweb subdiretório, pois não existe arquivo SBT para descrever o projeto e suas dependências.

Eu estou procurando uma solução que me permita manter essa estrutura de projeto (ou seja, o projeto Play é um dos vários subprojetos em meu aplicativo), mantendo todo o hotness do Google Play como hot updates quando o código é alterado (até codificar em bibliotecas dependentes gostarcommon).

Eu pensei que encontrei a solução executandoplay para obter o console interativo e, em seguida,

 project web
 run

Isso funciona, mas não funciona na linha de comando.play web/run por algum motivo, executa o nível da raizrun comando, como mencionado acima, não funciona porque o aplicativo raiz não é um aplicativo Play.

Nota: Uma pergunta semelhante foi feita antes no contexto do Play 2.0 emPlay Framework como o módulo não-raiz do SBT, mas a resposta não é satisfatória, nem acredito que ainda esteja correta a partir do Play 2.2.

questionAnswers(2)

yourAnswerToTheQuestion