没有命令行的测试如何运行sbt assembly命令?


89

我读过一些问题:这个那个。他们建议修改sbt文件。但是我想在sbt clean assembly没有测试的情况下运行,并且不要修改sbt构建文件。sbt可能吗?在Maven中有-DskipTest=true参数,是否有sbt的模拟?


基于这个和那个,以及官方文档,我会拒绝。您必须修改构建文件或执行package,因为它不会运行任何测试。
DB5 2014年

Answers:


150

对于您需要在命令行上更改的任何属性,请在它们之前加上“ set”,然后将其用引号引起来。

Windows示例:

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

适用于Mac的示例:

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

编辑。Windows中的报价有很大不同,因此尝试使此答案具有足够的通用性,以便仅通过对该特定答案使用双引号来使人们开始使用。通常,该原则是您希望将单个参数(通常不转义)传递sbt给整个“集合…”。还要注意,您可以将多个“ set”语句作为单独的命令行参数传递,也可以通过分号将一个引号中的语句分隔开。
kshakir

1
在Mac上,sbt 0.13.7出现<set>:1:错误:未找到:value assembly [错误]表达式中键入错误“这真的是13.7 vs 13.8的问题吗?
Metropolis

12
那可能不是sbt版本问题,而是由于版本较旧sbt-assembly。尝试更通用"set test in Test := {}"。目录中sbt-assembly列出了哪个版本的plugins?对于这两个文档0.11.20.13.0都表示,使用相同的上述语法的build.sbt。但是我猜测也许在使用较旧的插件时,该设置可能无法通过sbt控制台使用,因此无法在命令行上使用。
kshakir 2015年

5
sbt 'set test in assembly := {}' clean assembly仍然在macOS上运行最严格的规格sbt 1.0
Pradagupd 18'8

2
如果你正在做这里面的sbt:提示符下运行他们三级个人的任务,不带引号set test in Test := {}cleanassembly
MCW
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.