วิธีรันคำสั่ง sbt assembly โดยไม่ต้องทดสอบจากบรรทัดคำสั่ง


92

ฉันได้อ่านคำถาม: สิ่งนี้และสิ่งนั้น พวกเขาแนะนำให้แก้ไขไฟล์ sbt แต่ฉันต้องการรันsbt clean assemblyโดยไม่ต้องทดสอบและอย่าแก้ไขไฟล์สร้าง sbt เป็นไปได้ด้วย sbt? ใน maven มี-DskipTest=trueพารามิเตอร์มี analog สำหรับ sbt หรือไม่?


จากสิ่งนี้และสิ่งนั้นและเอกสารอย่างเป็นทางการฉันจะบอกว่าไม่ ไม่ว่าคุณจะต้องแก้ไขไฟล์บิวด์หรือรันpackageเนื่องจากไม่ได้ทำการทดสอบใด ๆ
DB5

คำตอบ:


157

สำหรับคุณสมบัติใด ๆ ที่คุณต้องการเปลี่ยนแปลงในบรรทัดคำสั่งให้นำหน้าด้วย "set" และรวมไว้ในเครื่องหมายคำพูด

ตัวอย่างสำหรับ Windows:

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

ตัวอย่างสำหรับ Mac:

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

แก้ไขแล้ว การอ้างอิงใน windows ค่อนข้างแตกต่างกันดังนั้นพยายามทำให้คำตอบนี้เป็นแบบทั่วไปมากพอที่จะทำให้ผู้คนเริ่มต้นได้โดยใช้เครื่องหมายคำพูดคู่สำหรับคำตอบเฉพาะนี้ โดยทั่วไปหลักการคือคุณต้องการส่งผ่านอาร์กิวเมนต์เดียวซึ่งมักไม่ใช้ Escape ไปยังsbt"ชุด ... " ทั้งหมดของคุณ นอกจากนี้โปรดทราบว่าคุณสามารถส่งคำสั่ง "set" หลายคำสั่งเป็นอาร์กิวเมนต์บรรทัดคำสั่งแยกกันหรือใช้เครื่องหมายอัฒภาคเพื่อแยกคำสั่งภายในอาร์กิวเมนต์เดียว
kshakir

1
สำหรับ Mac sbt 0.13.7 ฉันได้รับ <set>: 1: error: not found: value assembly [error] Type error in expression "นี่เป็นปัญหา 13.7 เทียบกับ 13.8 จริงหรือ
Metropolis

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
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.