Scala 使用Akka和sbt启用tilde触发器

Scala 使用Akka和sbt启用tilde触发器,scala,sbt,akka,Scala,Sbt,Akka,使用sbt,可以执行~run重新编译,并在源代码更改时运行程序。然而,一旦创建了ActorSystem,它就不再工作了 当系统关闭时,它可以工作,但我不想关闭系统 import akka.actor.ActorSystem object Test { def main(args: Array[String]) : Unit = { val system = ActorSystem() // if this line is removed, source code dete

使用sbt,可以执行~run重新编译,并在源代码更改时运行程序。然而,一旦创建了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()
  }
}

有什么解决方法吗?

您必须记住,SBTs
~run
本身不是热重新加载,它只是“一旦流程完成,请再次运行”。Akka的线程池是非daemonic的,这意味着在ActorSystem处于“活动”状态之前,程序不会终止,因此SBT的
~run
不会再次触发


相反,您可能希望查看SBT插件,它可以实现您所需的功能(包括基于Akka的应用)。

谢谢您的回答