如何退出 sbt 任务?
How to exit a sbt task?
我运行一个sbt任务。完成后的正常情况,它应该在终端中停止。但是终端没有等待下一个输入意思:我的任务保持 运行ning。我假设一些被调用的线程在任务启动后没有退出。
如何退出 clean 并杀死所有由 sbt 任务启动的进程?
我可以调试哪个服务没有停止,但需要很长时间才能弄清楚。
更多详情
在build.sbt
lazy val refreshTranslations = taskKey[Unit]("blabla")
fullRunTask(refreshTranslations, Compile, "tasks.TranslationTask")
任务中
object TranslationTask {
def main(args: Array[String]): Unit = {
// background stuff with ActorSystem() , AhcWSClient()
Await.result(service.get, 20.seconds)
...
}
}
我找到了在 SBT 任务完成后退出 ActorSystem
的方法。
在build.sbt中,在不同的线程中启动任务。
lazy val refreshTranslationsFallback = taskKey[Unit]("Refresh the translations file fallback")
fullRunTask(refreshTranslationsFallback, Compile, "tasks.TranslationTask")
fork in refreshTranslationsFallback := true
在任务中,
object TranslationTask {
def main(args: Array[String]): Unit = {
// background stuff with ActorSystem() , AhcWSClient()
...
scala.sys.exit() // important
}
}
特别感谢SBT stop run without exiting
我运行一个sbt任务。完成后的正常情况,它应该在终端中停止。但是终端没有等待下一个输入意思:我的任务保持 运行ning。我假设一些被调用的线程在任务启动后没有退出。
如何退出 clean 并杀死所有由 sbt 任务启动的进程? 我可以调试哪个服务没有停止,但需要很长时间才能弄清楚。
更多详情
在build.sbt
lazy val refreshTranslations = taskKey[Unit]("blabla")
fullRunTask(refreshTranslations, Compile, "tasks.TranslationTask")
任务中
object TranslationTask {
def main(args: Array[String]): Unit = {
// background stuff with ActorSystem() , AhcWSClient()
Await.result(service.get, 20.seconds)
...
}
}
我找到了在 SBT 任务完成后退出 ActorSystem
的方法。
在build.sbt中,在不同的线程中启动任务。
lazy val refreshTranslationsFallback = taskKey[Unit]("Refresh the translations file fallback")
fullRunTask(refreshTranslationsFallback, Compile, "tasks.TranslationTask")
fork in refreshTranslationsFallback := true
在任务中,
object TranslationTask {
def main(args: Array[String]): Unit = {
// background stuff with ActorSystem() , AhcWSClient()
...
scala.sys.exit() // important
}
}
特别感谢SBT stop run without exiting