当项目加载失败(而不是等待用户输入)时,sbt会失败吗?

时间:2014-01-31 15:49:01

标签: continuous-integration sbt

我正在配置我们的CI基础架构,当项目加载失败时,sbt会询问该怎么做:

Project loading failed: (r)etry, (q)uit, (l)ast, or (i)gnore?

这会挂起等待进程返回的构建。

有没有办法告诉sbt停止而不询问加载失败时该怎么做?

3 个答案:

答案 0 :(得分:7)

使用-batch选项调用SBT。它仍然会打印提示但实际上并没有等待回复,而是以非0状态退出。

答案 1 :(得分:1)

IMHO修补sbt启动器,因此columns: [ { 'data': 'ReportRank', 'width': '10%' }, { 'data': 'CategoryName', 'width': '25%' }, { 'data': 'ReportName','width':'50%' }, { 'data': 'PercentageChange', 'width': '15%' } ] 可执行文件只有在必须执行一次时才可接受,即在单个CI框或devenv上。

作为一种技巧,你可以在sbt命令上关闭stdin:

chomp($password = <STDIN>); $server = "NAME_OF_MY_DC_SERVER"; $ldap = Net::LDAP->new($server); $ldap or die "$@\n"; $ldap->bind('USERNAME', password => $password);

并且这样做不会启用交互模式,导致它在出错时退出。

有关类似问题,请参阅here

答案 2 :(得分:0)

通过JVM参数

禁用基础JLine终端类型
-Djline.terminal=off

并且SBT将无法提示您,只需退出。