使用sbt可以执行〜运行以在源更改时重新编译并运行程序。但是,一旦创建了ActorSystem,它就不再起作用了。
当系统关闭时,它可以工作,但我不想关闭系统。
import akka.actor.ActorSystem
object Test {
def main(args: Array[String]) : Unit = {
val system = ActorSystem()
// if this line is removed, source code detection is disabled
system.shutdown()
}
}
有解决方法吗?
答案 0 :(得分:4)
你必须记住SBT ~run
本身不热重新加载,它只是"一旦过程完成,请再次运行它"。 Akka的线程池是非守护进程的,这意味着直到ActorSystem是" alive"该计划不会终止,因此SBT ~run
不会再次触发。
相反,您可能需要查看sbt-revolver SBT插件,该插件可以执行您正在寻找的内容(包括基于Akka的应用)。