Ich habe 2 Projekte, die mit PlayFramework 2.4 entwickelt wurden. Obwohl sie im Konzept völlig getrennt sind, teilen sie einige gemeinsame Merkmale, wie Evolutionsmanagement (Liquibase), CRUD-Verwaltungsmechanismus, Benachrichtigungs- (E-Mail-, SMS-) Mechanismus usw. Also wurde beschlossen, jedes Projekt in 2 Module aufzuteilen: allgemein " Core "Modul, das alle beschriebenen Logik enthält, und" Projekt "Modul, die projektspezifische Dienste, Vorlagen, Ansichten halten.
Der empfohlene Ansatz, um dies im Play Framework zu erreichen, ist das "Teilprojekt" -Konzept. Aber aus mindestens zwei Gründen ist das keine Option:
Meine aktuelle Lösung besteht darin, ein Kernmodul zu erstellen und es als Abhängigkeit in der Play-Anwendung "Projekt" bereitzustellen. Auch wenn dieser Ansatz teilweise funktioniert, gibt es große Nachteile:
Ich bin gezwungen, gemeinsame Vorlagen in beide Projekte zu kopieren, ich kann praktisch keine gemeinsamen Controller schreiben, was so nervig ist
Schätze jede Hilfe. Vielleicht kann dies in einem hochgradig angepassten Build- und Veröffentlichungsprozess für das Kernmodul erreicht werden?
Ich denke, Sie sollten das Rollenkernprojekt nicht als Abhängigkeit für die anderen beiden Projekte hinzufügen. Sie könnten das Kernprojekt in Kernklassen und Kernressourcen aufteilen. Die Templates und Views im Playframework sind kompilierte Klassen, so dass man sie dann perfekt in ein jar packen kann. Die von Ihnen erstellten Vorlagen werden neben den Hauptklassen verpackt (oder Sie können sie auch trennen). Sie können diese Gläser in einer Abhängigkeitsanwendung wie Artefakt oder Nexus veröffentlichen und in die anderen Projekte importieren. Für die Ressourcen können Sie sie wie Webjars packen. So können Sie von jeder anderen Ansicht Ihrer anderen Projekte auf sie zugreifen.
Tags und Links java playframework sbt playframework-2.4