如何在sbt中抑制信息和成功消息?

时间:2012-04-01 21:01:51

标签: scala sbt

当我sbt run时,我会看到一些我想要删除的页眉和页脚信息:

$ sbt run 
[info] Set current project to XXX (in build file:/path/to/dir/)
<actual program output goes here; stuff I care about>
[success] Total time: 68 s, completed Apr 1, 2012 7:30:45 PM
$ 

如何摆脱这两行(即[info][success]行)?是否有一些build.sbt配置设置可用于执行此操作?理想情况下,我不想只是为了摆脱这两行而拥有另一个工具/依赖。

以下是我尝试的一系列事项:

  • 将run logLevel设置为Warn
  • 将全局logLevel设置为警告
  • 设置-Dsbt.log.noformat=true

我目前使用的解决方法: 执行javasbt生成ps生成top fork in run := true的{​​{1}}调用,并手动运行java命令直接在命令行上。

如果sbt被告知不要打印这些行,那将会更好,更清洁。

  • Scala版本:2.9.1
  • SBT版本:0.11.1

3 个答案:

答案 0 :(得分:15)

sbt 0.13.13

使用-warn-error。见Fixes with compatibility implications for sbt 0.13.13 release

  

强烈建议您迁移到单个连字符选项:-error-warn-info-debug

sbt 0.13.1

要禁用info消息,请使用--warn--error命令行选项运行SBT。

要禁用将[success]设置为showSuccess的{​​{1}}条消息。

将所有内容整合在一起,它会为您提供以下选项:

  • 在命令行中使用以下内容:

    false
  • $ sbt --error 'set showSuccess := false' run 添加build.sbt

    showSuccess := false

    并执行$ cat build.sbt showSuccess := false

答案 1 :(得分:6)

正如Jacek在回复中提到的,在build.sbt中,您可以添加showSuccess := false来取消[success]消息。要取消[info]消息,我只将Level.Warn配置的logLevel设置为run。将它们组合在一起,您需要将这些行添加到build.sbt

showSuccess := false

logLevel in run := Level.Warn

答案 2 :(得分:3)

你应该能够摆脱&#34;设置当前项目&#34;将此添加到您的build.sbt文件中:

onLoadMessage := ""