【发布时间】:2014-02-24 09:20:54
【问题描述】:
我正在配置我们的 CI 基础架构,当项目加载失败时,sbt 会询问该怎么做:
Project loading failed: (r)etry, (q)uit, (l)ast, or (i)gnore?
这会挂起等待进程返回的构建。
有没有办法告诉 sbt 停止而不询问加载失败时该怎么办?
【问题讨论】:
标签: continuous-integration sbt
我正在配置我们的 CI 基础架构,当项目加载失败时,sbt 会询问该怎么做:
Project loading failed: (r)etry, (q)uit, (l)ast, or (i)gnore?
这会挂起等待进程返回的构建。
有没有办法告诉 sbt 停止而不询问加载失败时该怎么办?
【问题讨论】:
标签: continuous-integration sbt
恕我直言,修补 sbt 启动器,因此 sbt 可执行文件仅在必须执行一次时才可接受,即在单个 CI 盒或您的 devenv 上。
作为一种技巧,您可以在 sbt 命令上关闭标准输入:
sbt < /dev/null
这样做不会启用交互模式,导致它在出现错误时退出。
请参阅here 了解类似的问题。
【讨论】:
通过 JVM 参数禁用底层 JLine 终端类型
-Djline.terminal=off
SBT 将无法提示您,直接退出。
【讨论】:
使用 -batch 选项调用 SBT。它仍然会打印提示,但实际上并不等待回复,而是会以非 0 状态退出。
【讨论】:
C:\Users\Jerzy\Workspaces\GitHub\genesis>sbt compile -batch [info] Loading global plugins from C:\Users\Jerzy\.sbt\0.13\plugins [info] Loading project definition from C:\Users\Jerzy\Workspaces\GitHub\genesis\project C:\Users\Jerzy\Workspaces\GitHub\genesis\build.sbt:11: error: not found: value tru exportJars := tru ^ [error] Type error in expression Project loading failed: (r)etry, (q)uit, (l)ast, or (i)gnore?
sbt-launch.jar 和一个设置SBT_OPTS 并运行jar 的简单脚本。