Como executar o comando de montagem sbt sem testes da linha de comando?

89

Eu li perguntas: isso e aquilo . Eles sugerem modificar o arquivo sbt. Mas eu quero executar sbt clean assemblysem testes e não modificar os arquivos de compilação sbt. É possível com o sbt? No maven há -DskipTest=trueparâmetro, há analógico para sbt?

cereja
fonte
com base nisso e naquilo, e na documentação oficial, eu diria que não. Você deve modificar os arquivos de construção ou executar, packagepois isso não executa nenhum teste.
DB5,
Possível duplicata de Como posso pular testes em uma construção SBT?
Murmel de

Respostas:

150

Para todas as propriedades que você precisa alterar na linha de comando, acrescente "set" no início e coloque-as entre aspas.

Exemplo para Windows:

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

Exemplo para Mac:

sbt 'set test in assembly := {}' clean assembly
kshakir
fonte
Editado. Citar é bem diferente no Windows, então tente tornar essa resposta genérica o suficiente para que as pessoas comecem a usar apenas aspas duplas para essa resposta específica. Em geral, o princípio é que você deseja passar um único argumento, muitas vezes sem escape, sbtcom todo o seu "conjunto ...". Observe também que você pode passar várias instruções "set" como argumentos de linha de comando separados ou por ponto e vírgula separando as instruções dentro de um argumento entre aspas.
kshakir de
1
Em um Mac, sbt 0.13.7 eu obtenho <set>: 1: erro: não encontrado: valor assembly [erro] Digite o erro na expressão "Este é realmente um problema de 13,7 vs 13,8?
Metropolis
12
Isso pode não ser um sbtproblema de versão, mas devido a um mais antigo sbt-assembly. Experimente o mais universal "set test in Test := {}". Qual versão do sbt-assemblyestá listada em seu pluginsdiretório? Os documentos para 0.11.2 e 0.13.0 dizem para usar a mesma sintaxe acima no build.sbt. Mas estou supondo que, talvez, ao usar o plug-in mais antigo, essa configuração pode não estar disponível por meio do console sbt e, portanto, não na linha de comando.
kshakir de
5
sbt 'set test in assembly := {}' clean assemblyainda executa as especificações escalatest em macos /sbt 1.0
prayagupd
2
Se você está fazendo isso dentro de um sbtalerta, executá-los como três tarefas individuais, sem aspas: set test in Test := {}, clean,assembly
mcw