【问题标题】:check if sbt can load the build programatically检查 sbt 是否可以以编程方式加载构建
【发布时间】:2022-01-22 09:14:07
【问题描述】:

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

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

【问题讨论】:

  • 你可以运行一个简单的命令 sbt version 例如检查 sbt 是否可以启动。如果不启动 sbt 本身就无法检查 sbt 是否会加载
  • @IvanStanislavciuc 我已经编辑了我的问题,希望能更好地传达为什么这不起作用。
  • 我明白了。如果您确实在 CI 中运行 sbt,这些问题通常可以通过超时来解决。超时也将涵盖其他问题,而不仅仅是 sbt boot

标签: sbt git-bisect


【解决方案1】:

使用--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
$ 

【讨论】:

    猜你喜欢
    • 2022-10-07
    • 1970-01-01
    • 2015-02-26
    • 2012-09-24
    • 2011-11-17
    • 2021-09-24
    • 2016-11-18
    • 2018-08-28
    • 2011-08-22
    相关资源
    最近更新 更多