Scala 如何在SBT 0.10.0中获得完整的堆栈跟踪?

Scala 如何在SBT 0.10.0中获得完整的堆栈跟踪?,scala,sbt,Scala,Sbt,我使用SBT 0.10.0来编译Java和Scala文件的组合。当我通过sbt run运行程序时,它返回一个非零错误,但不向我显示stacktrace——它只是以隐藏的消息默默地失败: Nonzero exit code: 1 如果我通过scala命令行运行程序,它确实会显示stacktrace 有没有办法让SBT打印出整个堆栈跟踪?执行SBT进入SBT外壳,然后尝试run,然后执行最后一次运行 last输出命令生成的所有内容(所有日志级别,包括[debug])和堆栈跟踪。last run,如

我使用SBT 0.10.0来编译Java和Scala文件的组合。当我通过
sbt run
运行程序时,它返回一个非零错误,但不向我显示stacktrace——它只是以隐藏的消息默默地失败:

Nonzero exit code: 1
如果我通过
scala
命令行运行程序,它确实会显示stacktrace


有没有办法让SBT打印出整个堆栈跟踪?

执行
SBT
进入SBT外壳,然后尝试
run
,然后执行
最后一次运行


last
输出命令生成的所有内容(所有日志级别,包括[debug])和堆栈跟踪。

last run
,如图所示,是一种方法,但如果您正在执行类似于使用
~run
在循环中运行的操作,并且只想查看应用程序的异常,则可能会很烦人。您可以告诉SBT为以下任务启用自动打印堆栈跟踪:

traceLevel in run := 0

进一步参考。

在SBT 0.13.x中,堆栈跟踪已经打印出来,所以这个问题现在可能变得无关紧要了

jacek:~/sandbox/so/sbt-0.13.1
$ sbt run
[info] Loading global plugins from /Users/jacek/.sbt/0.13/plugins
[info] Loading project definition from /Users/jacek/sandbox/so/sbt-0.13.1/project
[info] Set current project to sbt-0-13-1 (in build file:/Users/jacek/sandbox/so/sbt-0.13.1/)
[info] Compiling 1 Scala source to /Users/jacek/sandbox/so/sbt-0.13.1/target/scala-2.10/classes...
[info] Running MyApp
[error] (run-main-0) java.lang.Exception: exception
java.lang.Exception: exception
    at MyApp$delayedInit$body.apply(Hello.scala:2)
    at scala.Function0$class.apply$mcV$sp(Function0.scala:40)
    at scala.runtime.AbstractFunction0.apply$mcV$sp(AbstractFunction0.scala:12)
    at scala.App$$anonfun$main$1.apply(App.scala:71)
    at scala.App$$anonfun$main$1.apply(App.scala:71)
    at scala.collection.immutable.List.foreach(List.scala:318)
    at scala.collection.generic.TraversableForwarder$class.foreach(TraversableForwarder.scala:32)
    at scala.App$class.main(App.scala:71)
    at MyApp$.main(Hello.scala:1)
    at MyApp.main(Hello.scala)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
[trace] Stack trace suppressed: run last compile:run for the full output.
java.lang.RuntimeException: Nonzero exit code: 1
    at scala.sys.package$.error(package.scala:27)
[trace] Stack trace suppressed: run last compile:run for the full output.
[error] (compile:run) Nonzero exit code: 1
[error] Total time: 10 s, completed Jan 16, 2014 12:37:25 AM

我不确定它是否有用,但您是否尝试在build.sbt中添加
logLevel:=Level.Error