【发布时间】:2011-03-09 01:15:34
【问题描述】:
每当源文件更改时,使用~run 命令 sbt 将为我重新运行可执行目标。这很好,但是如果目标是一个长时间运行的服务器进程,sbt 会被挂起,直到子进程终止,所以源更改无效。
即使目标代码正在运行,我也希望 sbt 监控并重新编译我的源代码,并在成功构建时重新启动该过程。有人尝试过设置吗?
【问题讨论】:
标签: sbt
每当源文件更改时,使用~run 命令 sbt 将为我重新运行可执行目标。这很好,但是如果目标是一个长时间运行的服务器进程,sbt 会被挂起,直到子进程终止,所以源更改无效。
即使目标代码正在运行,我也希望 sbt 监控并重新编译我的源代码,并在成功构建时重新启动该过程。有人尝试过设置吗?
【问题讨论】:
标签: sbt
这是通过内置的“~”功能无法实现的。问题是,必须完成以“~”为前缀的任务。如果是监听某些端口的服务器应用程序,你必须先停止它。
也许您可以创建自己的任务或修改run 任务,以终止/退出正在运行的应用程序(例如,在侦听端口上发送一个神奇的退出字符串?)。有关详细信息,请参阅此内容:
http://code.google.com/p/simple-build-tool/wiki/CustomActions
【讨论】:
(对不起,事后回复)
https://github.com/spray/sbt-revolver 就是为了解决这个问题而创建的。
【讨论】: