2012-04-19 66 views
6

在playframework中有自動重新加載功能。這意味着在每個請求的開發模式中,將對更改的文件進行檢查,並在必要時重新編譯和重新加載項目。因此,例如,如果我$ touch conf/routes,項目將在下一次請求時重新加載。在playframework中自定義文件更改時重新加載應用程序

我想添加一些自定義文件來監視。

我相信watchSources設置包含播放正在觀看的文件列表。但它不適合我。考慮一下,我們希望將trigger文件添加到觀看的來源。

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

它成功添加到觀看源

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

但發揮忽略trigger變化和不重新啓動應用程序。我錯過了什麼?如何讓玩遊戲觀看自定義文件更改?

+0

也許這是一個愚蠢的問題,但是你是否記得在編譯Build.scala之後做一個'play reload'? – 2012-04-19 11:55:26

+0

試圖清理,重新加載,移至2.1-SNAPSHOT。我開始認爲所有觀看的文件都在[PlayReloader]中的某處硬編碼(https://github.com/playframework/Play20/blob/master/framework/src/sbt-plugin/src/main/scala/PlayReloader.scala) – 4e6 2012-04-19 12:13:14

+0

sbt文檔正在討論'watch'設置:https://github.com/harrah/xsbt/wiki/Triggered-Execution。但我無法在wiki中找到有關該設置的更多信息。 – 2012-04-19 15:09:49

回答

0

我從來沒有嘗試這樣做,但調查後,我注意到,

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

自然指向的conf路由文件(CONF /路由)。是否有可能忘記將文件「觸發器」置於conf(conf/trigger)中?

+0

我懷疑由於[PlayReloader]中的這些行(https://github.com/playframework/Play20/blob/master/framework/src/sbt),自動重新加載對'conf'目錄中的每個文件都有效,甚至未在'watchSources'中列出-plugin/src/main/scala/PlayReloader.scala#L21) – 4e6 2012-04-19 14:07:01

+0

這是一個很好的觀點! – 2012-04-19 14:08:01

相關問題