如何在capistrano中使用--trace运行rake?

时间:2011-08-15 21:38:38

标签: ruby rake capistrano

我希望capistrano用--trace调用rake,这样我就可以弄清楚它为什么会失败。我该怎么做呢? set :rake 'rake --trace'不起作用。

2 个答案:

答案 0 :(得分:15)

我发现的最好方法是:

set :rake, "#{rake} --trace"

这样您就不会覆盖 rake 变量。

例如,如果您使用 bundler ,则会在之前设置:

"bundle exec rake"

之后:

"bundle exec rake --trace"

答案 1 :(得分:1)

您的自定义任务可能没有使用rake变量,而是硬编码rake,这是一个示例:

run("rake sass:compile")

这是硬编码的,并不关心您的设置set :rake, 'rake --trace',这是正确的方法:

run("#{fetch(:rake)} sass:compile")

或者,简写:

run("#{rake} sass:compile")

您可以在Capistrano源代码中实际看到这一点,在默认配方实际调用的地方rake,在迁移任务中https://github.com/capistrano/capistrano/blob/master/lib/capistrano/recipes/deploy.rb#L387