开发者

How to set up sbt to restart long-running server process upon code change?

Using the ~run command sbt will re-run an executable target for me whenever a source file changes. This is nice, but if the target is a long-running server process, sbt is suspended until the child terminates, so sou开发者_C百科rce changes have no effect.

I'd like to have sbt monitor and recompile my sources even while the target code is running, and restart the process on a successful build. Has anybody tried to set this up?


(Sorry for the post-mortem reply)

https://github.com/spray/sbt-revolver has been created just to solve this problem.


This is not possible via the built in "~" functionality. The problem is, that the "~"-prefixed task has to complete. If it is a server application listening on some ports, you have stop it first.

Maybe you could create your own task or modify the run task, to kill/quit the running application (e.g. sending a magic exit-string on the listening port?). See this for more information:

http://code.google.com/p/simple-build-tool/wiki/CustomActions


JRebel could help you with dynamic class reloading if that is what you are after. Free Scala licence avaliable here. Usage information at the SBT site.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜