我有一个子模块和结构的Play2项目如下:
+ app
+ models
+ controllers
+ views
+ index.scala.html
+ main.scala.html
+ conf
+ modules
+ frontend
+ app
+ controllers
+ views
+ page.scala.html
在build.sbt中启用了模块,并且根模块和前端模块都按预期工作,甚至来自两个模块的控制器URL也可以相互反转。
但我无法从main.scala.html
调用page.scala.html
模板。
当我尝试像往常一样调用它时(@main(title) { ...
)我收到了编译错误:not found: value main
。
主模板的正确路径是什么?
UPD。我认为应该是SBT解决的问题。我的build.sbt看起来像这样
name := """myproject"""
version := "1.0-SNAPSHOT"
lazy val frontend = (project in file("modules/frontend")).enablePlugins(PlayScala)
lazy val root = (project in file(".")).enablePlugins(PlayScala).aggregate(frontend).dependsOn(frontend)
scalaVersion := "2.11.4"
libraryDependencies ++= Seq(
"org.postgresql" % "postgresql" % "9.3-1102-jdbc41",
jdbc,
anorm,
cache,
ws
)
pipelineStages := Seq(rjs, digest, gzip)
答案 0 :(得分:3)
子项目只能使用他们自己的资源或他们所依赖的项目中的资源(通过.dependsOn
)。由于您的前端项目不依赖于根项目,因此无法使用其视图模板(也不能在子项目之间存在循环依赖关系。)
在这种情况下,唯一的解决方案是将视图main.scala.html
模板移动到前端模块中,或者创建一个“公共”模块作为前端(以及可能的其他子项目)的基本依赖项。