У меня еще есть предупреждение о рейке / рдоктаске - PullRequest
20 голосов
/ 03 ноября 2011

Я сделал обновление пакета а теперь у меня все еще есть предупреждение об удалении rake / rdoctask после запуска команды rake.

WARNING: 'require 'rake/rdoctask'' is deprecated.  Please use 'require 'rdoc/task' (in RDoc 2.4.2+)' instead.
    at /home/cheetah/.rvm/gems/ruby-1.8.7-p302@tobiska/gems/rake-0.9.2.2/lib/rake/rdoctask.rb

Я пытался прочитать этот совет http://matthew.mceachen.us/blog/howto-fix-rake-rdoctask-is-deprecated-use-rdoc-task-instead-1169.html, но мой Rakefile в порядке.

Понятия не имею, как решить эту проблему.Какие-нибудь советы?Большое спасибо.

Мартин

Ответы [ 3 ]

19 голосов
/ 06 декабря 2011

В вашей системе может быть несколько версий rake, и вы можете просмотреть их, запустив

$ gem list
=> rake

(0.9.2.2, 0.9.2, 0.8.7). Чтобы определить версию в моем проекте,определите его в Gemfile как

gem 'rake', '0.8.7'

, затем запустите

bundle update rake

Ваша версия проекта теперь соответствует указанному в Gemfile, и ваш WARNING теперь исчез.

4 голосов
/ 20 января 2012

В дополнение к изменению Gemfile и запуску 'rake update bundle' нужно запустить и меня:

gem uninstall rake -v 0.9.2.2
gem uninstall rake -v 0.9.2
gem install rake -v 0.8.7
3 голосов
/ 18 января 2012

В некоторых проектах, которые не вызывают весь стек рельсов, добавление rdoc в Gemfile было для меня ключом к успеху:

group :development, :test do
  gem 'rake', '~> 0.9.2.2'
  gem "rdoc", '~> 3.12'
end

ОБНОВЛЕНИЕ: Это все еще вызывало у меня рельсы 3.0.х проект.Rakefile, драгоценные камни, казалось, все в порядке, но я все еще получал проблему.Чтобы точно выяснить, откуда выводится предупреждение, я поместил канарейку в gems / rake-0.9.2.2 / lib / rake / rdoctask.rb:

if Rake.application
  begin
    raise 'where am i'                                                                
  rescue                                                                       
    puts $@                                                                    
  end 
  Rake.application.deprecate('require \'rake/rdoctask\'', 'require \'rdoc/task\' (in RDoc 2.4.2+)', __FILE__)
end

Это сразу указало на проблему в самом стеке рельсов,Быстрая проверка, и очевидно, что рельсы 3.0.8 заполнены требованиями к рейку / rdoctask.Обновление до rails (3.0.9 или выше, я считаю) исправляет проблему (или вы можете понизить рейк, как предлагали другие).

Но пока вы застряли на ~ 3.0.8 и не хотите понижать рейтингРейк, вы можете подавить предупреждение, установив ignore_deprecate в вашем Rakefile:

require File.expand_path('../config/application', __FILE__)
require 'rake'
require 'rake/testtask'
require 'rdoc/task'

# add this (and perhaps make it conditional on Rails.version if you like):
Rake.application.options.ignore_deprecate = true

Babylon::Application.load_tasks

Зачем подавлять предупреждение?Моя основная мотивация заключалась в том, чтобы гарантировать, что задания cron, которые вызывают rake, не будут регистрировать и отправлять ложные сообщения по электронной почте.

...