Как запустить команду сборки sbt без тестов из командной строки?

89

Я читал вопросы: то и это . Они предлагают изменить файл sbt. Но я хочу работать sbt clean assemblyбез тестов и не изменять файлы сборки sbt. Можно ли с sbt? В maven есть -DskipTest=trueпараметр, есть ли аналог для sbt?

вишня
источник
основываясь на том и этом, и на официальной документации, я бы сказал нет. Либо вам нужно изменить файлы сборки, либо выполнить, packageпоскольку это не запускает никаких тестов.
DB5,
Возможный дубликат Как я могу пропустить тесты в сборке SBT?
Мурмель

Ответы:

150

Для любых свойств, которые вам нужно изменить в командной строке, добавьте их с помощью «set» и заключите в кавычки.

Пример для Windows:

sbt "set test in assembly := {}" clean assembly

Пример для Mac:

sbt 'set test in assembly := {}' clean assembly
кшакир
источник
Отредактировано. Цитирование в окнах сильно отличается, поэтому попытался сделать этот ответ достаточно общим, чтобы люди начали, просто используя двойные кавычки для этого конкретного ответа. В общем, принцип состоит в том, что вы хотите передать один аргумент, часто без экранирования, sbtсо всем вашим «набором…». Также обратите внимание, что вы можете передавать несколько операторов «set» как отдельные аргументы командной строки или разделяя их точкой с запятой внутри одного аргумента в кавычках.
kshakir 02
1
На Mac sbt 0.13.7 я получаю <set>: 1: error: not found: value assembly [error] Ошибка типа в выражении «Действительно ли это проблема 13,7 против 13,8?»
Метрополис,
12
Возможно, это не sbtпроблема версии, но из-за более старой версии sbt-assembly. Попробуйте более универсальный "set test in Test := {}". Какая версия sbt-assemblyуказана в вашем pluginsкаталоге? В документации для 0.11.2 и 0.13.0 говорится об использовании одного и того же синтаксиса выше в build.sbt. Но я предполагаю, что, возможно, при использовании старого плагина этот параметр может быть недоступен через консоль sbt и, следовательно, не в командной строке.
kshakir
5
sbt 'set test in assembly := {}' clean assemblyвсе еще работает с масштабируемыми спецификациями на macos /sbt 1.0
прайагупд
2
Если вы делаете это внутри sbtприглашение, запускать их как три отдельных задач, без кавычек: set test in Test := {}, clean,assembly
MCW