Cartella di origine aggiuntiva in Play Framework 2.2 e Binding Form
-
21-12-2019 - |
Domanda
Ho bisogno di una seconda cartella di origine accanto all'app in un'applicazione PlayFramework 2.2.Per questo, ho aggiunto ai progetti build.sbt:
unmanagedSourceDirectories in Compile += baseDirectory.value / "common_app"
.
Problema: il legame del modulo non funziona più con le classi del modello Java in Common_App / Models.Infatti c'è differenza nei file di classe compilati, se il file sorgente del modello di modulo è in Common_app / Models, il file di classe è circa la metà delle dimensioni.
Come posso aggiungere la seconda cartella di origine e avere un funzionamento del legame?
Soluzione
La cartella di origine app
è definita in
/framework/src/sbt-plugin/src/main/scala/PlaySettings.scala
.
Appendi solo le linee di origine con "app" alla fine dei tuoi progetti build.sbt e modificarli nella tua nuova cartella di origine (le linee vuote sono importanti e la virgola alla fine deve essere rimossa):
.unmanagedSourceDirectories in Compile += baseDirectory.value / "common_app"
sourceDirectory in Compile <<= baseDirectory / "common_app"
//scalaSource in Compile <<= baseDirectory / "common_app"
javaSource in Compile <<= baseDirectory / "common_app"
watchSources <++= baseDirectory map { path => ((path / "common_app") ** "*" --- (path / "common_app/assets") ** "*").get }
.