J'ai une application de jeu multi-module avec un module de jeu et un autre module de scala et tout fonctionne bien. Je veux ajouter un template Twirl personnalisé et c'est là que les problèmes surviennent. Ceci est le Multiproject structureModèle personnalisé dans le multiprojet PlayFramework
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")
Une partie de 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
L'action qui utilisent le modèle est en HomeController.scala:
......
def records = Action {
Ok(views.csv.records(Record.sampleRecords))
}
.....
Ceci est le résultat lorsque je montre ma 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)
Et voici mon erreur de compilation lorsque je tente de compiler le projet:
[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
Pour plus d'informations compiler le même modèle personnalisé et fonctionne dans un seul projet play framework