如何禁用 rake 任务中的跟踪?
How can I disable the trace in rake tasks?
我不确定这是什么时候开始的,但是每当我 运行 在 Rails 中执行抽佣任务时:
$ rake routes
在它打印路线之前,它显示跟踪:
** Invoke routes (first_time)
** Invoke environment (first_time)
** Execute environment
** Execute routes
我认为那些 invoke/execute 语句只会在我将 --trace
添加到我的命令时出现,但它发生在我所有的 rake 任务(db create/migrate、Capistrano 等。 )
有没有办法禁用跟踪功能? Rails 中是否有可能启用我不知道的跟踪的配置文件?
问题已被追踪到实现 Capistrano 插件的自定义 gem。 gem 允许将不同的版本控制系统与 Capistrano 一起使用,而不是他们提供的版本控制系统(Git、SVN 等)。
最终的问题是 capistrano/lib/capistrano/all.rb
有这一行:
Rake.application.options.trace = true
此文件与 Capistrano 插件一起加载,但在 Capfile
中使用之前不需要默认插件。当我们使用新插件创建自定义 gem 时,我们只需将新的 gem 添加到应用程序的 Gemfile
,默认情况下会加载文件。所以我们的插件文件看起来像这样:
# custom_gem/lib/capistrano/scm/custom_vc.rb
require 'capistrano/scm/plugin'
class Capistrano::SCM::CustomVC < Capistarno::SCM::Plugin
# ... Mimic the capistrano/lib/capistrano/scm/git.rb in the Capistrano gem.
end
顶行要求 capistrano/scm/plugin
最终要求 capistrano-lib/capistrano/all.rb
为所有 Rake 任务设置跟踪。
解决方案是简单地将 require: false
添加到自定义 gem.
的 Gemfile 中
# Gemfile
group :development do
gem 'capistrano_custom_vc', require: false
end
我不确定这是什么时候开始的,但是每当我 运行 在 Rails 中执行抽佣任务时:
$ rake routes
在它打印路线之前,它显示跟踪:
** Invoke routes (first_time)
** Invoke environment (first_time)
** Execute environment
** Execute routes
我认为那些 invoke/execute 语句只会在我将 --trace
添加到我的命令时出现,但它发生在我所有的 rake 任务(db create/migrate、Capistrano 等。 )
有没有办法禁用跟踪功能? Rails 中是否有可能启用我不知道的跟踪的配置文件?
问题已被追踪到实现 Capistrano 插件的自定义 gem。 gem 允许将不同的版本控制系统与 Capistrano 一起使用,而不是他们提供的版本控制系统(Git、SVN 等)。
最终的问题是 capistrano/lib/capistrano/all.rb
有这一行:
Rake.application.options.trace = true
此文件与 Capistrano 插件一起加载,但在 Capfile
中使用之前不需要默认插件。当我们使用新插件创建自定义 gem 时,我们只需将新的 gem 添加到应用程序的 Gemfile
,默认情况下会加载文件。所以我们的插件文件看起来像这样:
# custom_gem/lib/capistrano/scm/custom_vc.rb
require 'capistrano/scm/plugin'
class Capistrano::SCM::CustomVC < Capistarno::SCM::Plugin
# ... Mimic the capistrano/lib/capistrano/scm/git.rb in the Capistrano gem.
end
顶行要求 capistrano/scm/plugin
最终要求 capistrano-lib/capistrano/all.rb
为所有 Rake 任务设置跟踪。
解决方案是简单地将 require: false
添加到自定义 gem.
# Gemfile
group :development do
gem 'capistrano_custom_vc', require: false
end