rakefile - 强制 ruby​​ 在异常时隐藏回溯

标签 rakefile

我用 Rakefile 做一些平常的工作,如编译、链接等。

当编译失败时,ruby 会显示发生任务错误的完整回溯,但这对我来说真的没用,甚至更多:这个回溯隐藏了编译错误。

$ rake
mkdir -p build
llvm-as source/repl.ll -o build/repl.bc
llvm-as: source/repl.ll:6:22: error: expected value token
  call i32 @fputc(i8 'x', i32 0)
                 ^
rake aborted!
Command failed with status (1): [llvm-as source/repl.ll -o build/repl.bc...]
/usr/local/lib/ruby/1.9.1/rake.rb:993:in `block in sh'
/usr/local/lib/ruby/1.9.1/rake.rb:1008:in `call'
/usr/local/lib/ruby/1.9.1/rake.rb:1008:in `sh'
/usr/local/lib/ruby/1.9.1/rake.rb:1092:in `sh'
...

“耙子中止”后如何隐藏所有内容! ?

最佳答案

看来您在 rake 任务中使用了“sh”命令来启动编译器。在这种情况下,您应该捕获 RuntimeError,以获取此错误。像这样的东西:

task "foo" do
  begin
    sh "bar"
  rescue RuntimeError => e
    puts e.message
    exit(1)
  end
end

关于rakefile - 强制 ruby​​ 在异常时隐藏回溯,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5357383/

相关文章:

ruby - 运行所有 rake 任务?

ruby - 我如何将参数从命令行传递给rake然后rspec

ruby - 从 Rake 获取 Ruby 环境变量

ruby - 为什么我得到 "RAKEFILE ABORTED, NO RAKEFILE FOUND"?

ruby - Rake 运行函数两次

ruby - 使用 rake 复制保留目录结构的文件

ruby-on-rails - Redmine 中的 Rake 任务出错

ruby-on-rails - heroku run rake db :migrate . .. rake 中止!未找到 Rakefile

Mysql2::错误:此 MySQL 版本不允许使用的命令:LOAD DATA LOCAL INFILE

ruby - 如何正确地包含来自 Ruby rakefile 的其他项目文件