如何检查应用程序是否通过SBT运行?

时间:2016-01-21 23:32:55

标签: scala sbt

我试图允许我的应用程序使用System.exit(<int>),这样当它通过命令行运行时,它自己在SBT外部返回一个有用的退出代码。

当我在通过SBT&#39; run命令运行时退出时,我收到以下消息:

Exception: sbt.TrapExitSecurityException thrown from the UncaughtExceptionHandler in thread "run-main-e"

我知道这条消息的用途,以及它必须存在的原因。

如果我的代码是通过SBT运行的话,我想避免退出。是否可以检测代码是否通过SBT运行?如果是这样,怎么样?

1 个答案:

答案 0 :(得分:3)

您可以使用SBT的fork设置解决此问题。在build.sbt中,添加:

fork := true

有关要分叉的任务的进一步细化,请参阅SBT的文档:http://www.scala-sbt.org/0.13/docs/Forking.html