I've a multi-module play app with a play module and other scala module and every thing works fine. I want to add a custom Twirl template and that's when problems arise. This is the Multiproject structure
build.sbt:
name := """scalaplay"""
version := "1.0-SNAPSHOT"
lazy val root = (project in file(".")).enablePlugins(PlayScala).dependsOn(restfulapi,util).aggregate(restfulapi,util)
scalaVersion := "2.11.7"
/**
* .dependsOn(util). will let us use element from dbmodule into apirestmodule. Specifically some element and structure
* of the data model.
*
*/
lazy val restfulapi = (project in file("modules/apirest")).enablePlugins(PlayScala).dependsOn(util).settings(scalaVersion:="2.11.7",
libraryDependencies ++= Seq(
cache,
"org.scalatestplus.play" %% "scalatestplus-play" % "1.5.1" % Test
)
)
lazy val util = (project in file("modules/dbmodule")).settings(scalaVersion:="2.11.7")
TwirlKeys.templateFormats += ("csv" -> "views.CsvFormat")
Part of apirest.routes:
#processing premierLeague
POST /premier/match controllers.PremierleagueController.insertMatch
GET /premier/matchs controllers.PremierleagueController.getMatchGame
GET /assets/*file controllers.Assets.versioned(path="/public", file: Asset)
GET /records controllers.HomeController.records
The action that use the template is in HomeController.scala:
......
def records = Action {
Ok(views.csv.records(Record.sampleRecords))
}
.....
This is the result when I show my source:
[scalaplay] $ show twirlCompileTemplates::sourceDirectories
[info] restfulapi/compile:twirlCompileTemplates::sourceDirectories
[info] List(/Users/ldipotet/scala/scalaplay/modules/apirest/app)
[info] root/compile:twirlCompileTemplates::sourceDirectories
[info] List(/Users/ldipotet/scala/scalaplay/app)
And Here is my compilation Error when I try to compile the project:
[info] Compiling 22 Scala sources and 1 Java source to /Users/ldipotet/scala/scalaplay/modules/apirest/target/scala-2.11/classes...
[error] /Users/ldipotet/scala/scalaplay/modules/apirest/app/controllers/HomeController.scala:72: object csv is not a member of package views
[error] Ok(views.csv.records(Record.sampleRecords))
[error] ^
[error] one error found
[error] (restfulapi/compile:compileIncremental) Compilation failed
[error] Total time: 6 s, completed 24-jul-2017 17:18:11
For more info the same Custom template compile and works in a single playframework project