6

每当源文件更改时,使用~run命令 sbt 将为我重新运行可执行目标。这很好,但是如果目标是一个长时间运行的服务器进程,sbt 会被挂起,直到子进程终止,所以源更改无效。

即使目标代码正在运行,我也希望 sbt 监视并重新编译我的源代码,并在成功构建时重新启动该过程。有没有人试图设置这个?

4

3 回答 3

8

(对不起,验尸回复)

https://github.com/spray/sbt-revolver就是为了解决这个问题而创建的。

于 2013-10-28T19:55:13.257 回答
5

这通过内置的“~”功能是不可能的。问题是,必须完成以“~”为前缀的任务。如果它是侦听某些端口的服务器应用程序,您必须先停止它。

也许您可以创建自己的任务或修改run任务,以杀死/退出正在运行的应用程序(例如在侦听端口上发送一个神奇的退出字符串?)。有关更多信息,请参见:

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

于 2010-06-28T09:45:34.060 回答
1

如果这是您所追求的,JRebel 可以帮助您进行动态类重新加载。此处提供免费的 Scala 许可证。SBT 网站上的使用信息。

于 2010-06-28T16:11:10.500 回答