gpt4 book ai didi

scala - 如何用akka和sbt开发?

转载 作者:行者123 更新时间:2023-12-04 15:23:43 25 4
gpt4 key购买 nike

用 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 上停止了 Actor 系统模式

最佳答案

你可以试试 JRebel .您可以获得 free license for Scala development .对我来说非常好,尤其是与 sbt 一起工作。 Sbt 编译类,使用 JRebel 运行的 Scala 应用程序在运行的应用程序中动态加载新编译的类,无需重新启动。

我的 build.sbt 有以下条目:

javaOptions ++=Seq("-javaagent:/path/to/jrebel.jar","-Drebel.log=true","-Drebel.log.file=/path/to/jrebel.log")

fork := true

我有两个 sbt 实例正在运行。一个运行程序,另一个在检测到更改时编译所有类( ~compile )。

关于scala - 如何用akka和sbt开发?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17258529/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com