Как подавить информацию и сообщения о успехе в 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 для предупреждения
  • Установить глобальный logLevel для предупреждения
  • Установить -Dsbt.log.noformat=true

Обходной путь, который я использую сейчас: Скопируйте вызов java, который sbt генерирует (делая ps или top) в результате выполнения fork in run := true и вручную запуская эту команду java непосредственно в командной строке.

Лучше всего и намного чище, если sbt может быть сказано не печатать эти строки.

  • Scala версия: 2.9.1
  • Версия SBT: 0.11.1

Ответы

Ответ 1

sbt 0,13.13

Используйте -warn или -error. См. Исправления с последствиями совместимости для версии sbt 0.13.13:

настоятельно рекомендуется перейти к одним вариантам дефиса: -error, -warn, -info и -debug

sbt 0.13.1

Чтобы отключить сообщения info, запустите SBT с параметрами командной строки --warn или --error.

Чтобы отключить сообщения [success], установите showSuccess на false.

Объединяя все вместе, он предоставляет вам следующие возможности:

  • В командной строке используйте следующее:

    $ sbt --error 'set showSuccess := false' run
    
  • В build.sbt добавить showSuccess := false

    $ cat build.sbt
    showSuccess := false
    

    и выполните sbt --error run.

Ответ 2

Как сказал Яцек в своем ответе, в build.sbt вы можете добавить showSuccess := false, чтобы подавить сообщение [success]. Чтобы подавить сообщение [info], я установил logLevel на Level.Warn только для конфигурации run. Объединяя их, вы должны добавить эти строки в build.sbt:

showSuccess := false

logLevel in run := Level.Warn

Ответ 3

Вы можете быть в состоянии избавиться от строки "Установить текущий проект", добавив это в свой файл build.sbt:

onLoadMessage := ""