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