使用 sbt 开发我几乎不使用~run
命令,比如 sbt 拾取我的代码更改。这很舒服。
现在我要玩一下akka。当 ctrl+D 停止应用程序并且动态拾取代码时,有什么方法可以恢复默认 sbt 的行为?
这是示例应用程序:
object Main extends App {
println("Starting actors...")
val system = ActorSystem("MySystem")
val myActor = system.actorOf(Props[Actors.MyActor], name = "myActor")
myActor ! "test"
// system.shutdown()
}
object Actors {
class MyActor extends Actor {
val log = Logging(context.system, this)
def receive = {
case "test" => log.info("received test")
case _ => log.info("received something else")
}
}
}
在这种情况下run
,~run
命令既不会被 ctrl+D 中断,也不会在更改时重新加载代码。只有 ctrl+C 才能停止整个 sbt。据我了解,播放框架有一些解决方案,因为它看起来像在~run
模式下停止 ctrl+D 上的演员系统