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?


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,

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

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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.