检查 sbt 是否可以以编程方式加载构建

check if sbt can load the build programatically

有没有一种方法可以以编程方式检查是否可以加载 sbt 构建而不会 运行避免 sbt 等待用户输入的风险?我想 运行 'sbt test' 作为自动 git/hg 对分的一部分,但我得到了提交,其中 sbt 由于构建定义中的错误而无法启动,然后询问用户它应该做什么.

另请参阅:Have sbt fail when project loading fails (rather than awaiting user input)?

使用--batch标志,可以指示sbt放弃互动提问。如果出现错误,它仍会以 1 的退出代码退出:

$ sbt --batch; echo $?
[info] welcome to sbt 1.5.5 (Ubuntu Java 11.0.13)
[info] loading settings for project dl-tools-build from plugins.sbt ...
[info] loading project definition from /harddisk1/home/user/dl-tools/project
/harddisk1/home/user/dl-tools/build.sbt:63: error: not found: value asdf
asdf
^
sbt.compiler.EvalException: Type error in expression
[error] sbt.compiler.EvalException: Type error in expression
[error] Use 'last' for the full log.
[warn] Project loading failed: (r)etry, (q)uit, (l)ast, or (i)gnore? (default: r)
1
$