2012-04-19 6 views
6

In playframework ist Auto-Reload-Funktion. Das bedeutet, dass play im Entwicklungsmodus bei jeder Anfrage Dateien auf Änderungen prüft und das Projekt bei Bedarf neu kompiliert und neu lädt. Also, zum Beispiel, wenn ich $ touch conf/routes, Projekt wird bei der nächsten Anfrage neu geladen werden.Reload App auf benutzerdefinierte Datei ändern in playframework

Ich möchte einige benutzerdefinierte Datei hinzufügen, um darauf zu achten.

Ich glaube, watchSources Einstellung enthält Liste der Dateien, die das Spiel zu beobachten ist. Aber es funktioniert nicht für mich. Stellen Sie sich vor, wir möchten die Datei trigger den beobachteten Quellen hinzufügen.

watchSources <+= baseDirectory map { _/"trigger" } 

Es wird erfolgreich Quellen hinzugefügt

[sbt console] $ show watch-sources 
[info] List(/* trigger appears in list */) 

Aber spielen ignoriert trigger Veränderungen zu beobachten und Anwendung nicht neu gestartet wird. Was ich vermisse? Wie wird die Wiedergabe von benutzerdefinierten Dateiänderungen überwacht?

+0

Vielleicht ist das eine dumme Frage, aber erinnerst du dich daran, nach dem Bearbeiten von Build.scala ein 'play reload' zu machen? –

+0

Versucht zu reinigen, neu zu laden, zu 2.1-SNAPSHOT zu wechseln. Ich fing an zu denken, dass alle angesehenen Dateien irgendwo in [PlayReloader] (https://github.com/playframework/Play20/blob/master/framework/src/sbt-plugin/src/main/scala/PlayReloader.scala) – 4e6

+0

hartcodiert sind Die sbt-Dokumentation spricht über die "Uhr" -Einstellung: https://github.com/harrah/xsbt/wiki/Triggered-Execution. Mehr Informationen zu dieser Einstellung kann ich im Wiki nicht finden. –

Antwort

0

Ich habe nie versucht, dies zu tun, aber nach der Untersuchung bemerkte ich, dass

watchSources <+= confDirectory map { _/"routes" } 

auf die Routen-Datei in conf natürlich Punkten (conf/Routen). Ist es möglich, dass Sie vergessen haben, die Datei "trigger" in conf (conf/trigger) zu setzen?

+0

vermute ich auto-reload funktioniert für jede Datei im 'conf'-Verzeichnis, auch wenn sie nicht in' watchSources' enthalten ist, da diese Zeilen in [PlayReloader] (https://github.com/playframework/Play20/blob/master/framework/src/sbt -plugin/src/main/scala/PlayReloader.scala # L21) – 4e6

+0

Das ist ein guter Punkt! –