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