在 playframework 中重新加载自定义文件更改的应用程序
Posted
技术标签:
【中文标题】在 playframework 中重新加载自定义文件更改的应用程序【英文标题】:Reload app on custom file change in playframework 【发布时间】:2012-04-30 21:34:55 【问题描述】:在 playframework 中有自动重新加载功能。这意味着在每个请求的开发模式下,play 都会检查文件的变化,并在必要时重新编译和重新加载项目。因此,例如,如果我 $ touch conf/routes
,项目将在下一次请求时重新加载。
我想添加一些自定义文件以供关注。
我相信watchSources
设置包含正在播放的文件列表。但这对我不起作用。考虑一下,我们想将trigger
文件添加到观看的源中。
watchSources <+= baseDirectory map _ / "trigger"
已成功添加到观看源
[sbt console] $ show watch-sources
[info] List(/* trigger appears in list */)
但 play 会忽略 trigger
的更改并且不会重新启动应用程序。我错过了什么?如何让播放监视自定义文件更改?
【问题讨论】:
也许这是一个愚蠢的问题,但你是否记得在编辑 Build.scala 后做一个play reload
?
尝试清理、重新加载、移至 2.1-SNAPSHOT。我开始认为所有观看的文件都被硬编码在 PlayReloader 的某个地方
sbt 文档正在讨论watch
设置:github.com/harrah/xsbt/wiki/Triggered-Execution。但我在 wiki 中找不到有关该设置的更多信息。
@Li-o, watch-sources
适用于普通的 sbt
项目,但 play 依赖于自己的花哨 PlayReloader
,覆盖标准行为。
@4e6,如果您将文件添加到watchSources
并执行~run
命令,它会检测到该文件的更改。这似乎在PlayLoader
:github.com/playframework/Play20/blob/master/framework/src/… 中明确编码
【参考方案1】:
我从来没有尝试过这样做,但经过调查,我注意到了
watchSources <+= confDirectory map _ / "routes"
自然指向 conf (conf/routes) 中的路由文件。是不是忘了把文件“trigger”放到conf(conf/trigger)中?
【讨论】:
我怀疑自动重新加载将适用于conf
目录中的每个文件,甚至没有在watchSources
中列出,因为PlayReloader 中的这些行以上是关于在 playframework 中重新加载自定义文件更改的应用程序的主要内容,如果未能解决你的问题,请参考以下文章
Log4j 自定义配置为每个级别分隔日志 - Playframework 1.2.5
如何在 UICollectionView 中强制重新加载自定义单元格?
每种错误类型的 PlayFramework Application 2.7.x 自定义错误页面