2012-04-19 42 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

相关问题