Bagaimana menjalankan perintah perakitan sbt tanpa tes dari baris perintah?

92

Saya telah membaca pertanyaan: ini dan itu . Mereka menyarankan untuk mengubah file sbt. Tapi saya ingin berjalan sbt clean assemblytanpa tes dan tidak memodifikasi file build sbt. Apakah mungkin dengan sbt? Di maven ada -DskipTest=trueparameter, apakah ada analog untuk sbt?

ceri
sumber
berdasarkan ini dan itu, dan dokumentasi resmi saya akan mengatakan tidak. Anda harus mengubah file build atau menjalankannya packagekarena itu tidak menjalankan pengujian apa pun.
DB5
Kemungkinan duplikat dari Bagaimana saya bisa melewati tes dalam SBT build?
Murmel

Jawaban:

157

Untuk properti apa pun yang perlu Anda ubah pada baris perintah, tambahkan dengan "set", dan bungkus dengan tanda kutip.

Contoh untuk Windows:

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

Contoh untuk Mac:

sbt 'set test in assembly := {}' clean assembly
kshakir
sumber
Diedit. Mengutip cukup berbeda di windows, jadi cobalah membuat jawaban ini cukup umum untuk membuat orang mulai hanya dengan menggunakan tanda kutip ganda untuk jawaban spesifik ini. Secara umum, prinsipnya adalah Anda ingin meneruskan satu argumen, sering kali tanpa lolos, sbtdengan seluruh "set…" Anda. Perhatikan juga Anda dapat meneruskan beberapa pernyataan "set" sebagai argumen baris perintah terpisah, atau dengan titik koma yang memisahkan pernyataan dalam satu argumen yang dikutip.
kshakir
1
Di Mac, sbt 0.13.7 Saya mendapatkan <set>: 1: error: not found: value assembly [error] Ketik error dalam ekspresi "Apakah ini benar-benar masalah 13.7 vs 13.8?
Metropolis
12
Itu mungkin bukan sbtmasalah versi, tetapi karena versi yang lebih lama sbt-assembly. Coba yang lebih universal "set test in Test := {}". Versi apa sbt-assemblyyang terdaftar dalam pluginsdirektori Anda ? Dokumen untuk 0.11.2 & 0.13.0 keduanya mengatakan untuk menggunakan sintaks yang sama di atas dalam build.sbt. Tapi saya menduga mungkin ketika menggunakan plugin yang lebih lama pengaturan itu mungkin tidak tersedia melalui konsol sbt, dan karenanya tidak pada baris perintah.
kshakir
5
sbt 'set test in assembly := {}' clean assemblymasih menjalankan Spek terbaru di macos /sbt 1.0
prayagupd
2
Jika Anda melakukan ini dalam sebuah sbtprompt, menjalankannya sebagai tiga tugas individu, tanpa tanda kutip: set test in Test := {}, clean,assembly
mcw