Zusätzlicher Quellordner in Playframework 2.2 und Formularbindung
-
21-12-2019 - |
Frage
Ich benötige einen zweiten Quellordner neben der App in einer Playframework 2.2-Anwendung.Dafür habe ich den Projekten Build hinzugefügt.sbt:
unmanagedSourceDirectories in Compile += baseDirectory.value / "common_app"
Problem:Die Formularbindung funktioniert nicht mehr mit Java-Modellklassen in common_app/models .In der Tat gibt es Unterschiede in den kompilierten Klassendateien - wenn sich die Quelldatei des Formularmodells in common_app / models befindet, ist die Klassendatei etwa halb so groß.
Wie kann ich den zweiten Quellordner hinzufügen und die Formularbindung funktionieren lassen?
Lösung
Der app
quellordner ist definiert in
/framework/src/sbt-plugin/src/main/scala/PlaySettings.scala
Hängen Sie einfach die Quellzeilen mit "app" an das Ende Ihrer Projekterstellung an.sbt und ändere sie in deinen neuen Quellordner (die leeren Zeilen sind wichtig und das Komma am Ende muss entfernt werden):
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 }