2011-11-03 12 views
20

Zrobiłem aktualizację pakietu teraz mam nadal rake/rdoctask przestarzałe ostrzeżenie po uruchomieniu polecenia rake.Mam nadal rake/rdoctask przestarzałe ostrzeżenie

WARNING: 'require 'rake/rdoctask'' is deprecated. Please use 'require 'rdoc/task' (in RDoc 2.4.2+)' instead. 
    at /home/cheetah/.rvm/gems/[email protected]/gems/rake-0.9.2.2/lib/rake/rdoctask.rb 

Próbowałem przeczytać tę końcówkę http://matthew.mceachen.us/blog/howto-fix-rake-rdoctask-is-deprecated-use-rdoc-task-instead-1169.html ale mój Rakefile jest OK.

Nie mam pojęcia, jak rozwiązać ten problem. Jakieś wskazówki? Wielkie dzięki.

Martin

+1

ja wciąż walczy tę kwestię z wielu projektów. Biorąc pod uwagę wszystkie oczywiste rzeczy (np. Rdoc itp.), Nadal mnie to podrażnia. Podejrzewam, że w projekcie są jakieś klejnoty, ale śledzenie problemu jest problemem. Czy ktoś wie, jak uzyskać ruby ​​/ rake, aby zgłosić dokładne położenie kodu, co spowodowało OSTRZEŻENIE? – tardate

Odpowiedz

19

Można mieć wiele wersji prowizji w systemie i można je przeglądać, uruchamiając

$ gem list 
=> rake 

(0.9.2.2, 0.9.2, 0.8.7) Aby zdefiniować wersja w moim projekcie, należy zdefiniować go w Gemfile jak

gem 'rake', '0.8.7' 

następnie uruchomić

bundle update rake 

Twoja wersja projektu jest teraz określona w Gemfile, a Twoje OSTRZEŻENIE już nie istnieje.

+0

Twoje rozwiązanie sprawdziło się, dzięki – Steven

+3

Nie mam wielu wersji prowizji. – mcr

3

W niektórych projektach, które nie powołują całe szyny komin, dodając rdoc do Gemfile było kluczem do sukcesu dla mnie:

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

UPDATE: To wciąż dręczy mnie z 3.0.x szynach projekt. Rakefile, klejnoty wszystko wydawało się ok, ale wciąż dostałem problem. Aby dowiedzieć się dokładnie, gdzie ostrzeżenie wacoming z kładę kanarka w klejnoty/grabie-0.9.2.2/lib/prowizji/rdoctask.rb:

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

Ten natychmiast wskazał na problem w szynach układać się. Szybka kontrola i widać, że tory 3.0.8 są pełne wymagań rake/rdoctask. Uaktualnienie do szyn (w wersji 3.0.9 lub wyższej) rozwiązuje problem (lub możesz obniżyć rake, jak sugerowali inni).

Ale gdy utkniesz na ~ 3.0.8 i nie chce obniżyć grabie, można stłumić ostrzeżenia przez ustawienie ignore_deprecate w 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 

Dlaczego tłumić ostrzeżenie? Moją główną motywacją było zapewnienie zadań crona, które wywołują prowizję, nie logują się i nie wysyłają niepożądanych wyników.

+0

To nie zadziałało w moim przypadku. – e3matheus

+0

tak, to wróciło, aby mnie również zepsuć. Rdoc trick zajmuje się jedną przyczyną, ale są inne ... – tardate

+0

ok teraz jestem szczęśliwy: mam rozwiązanie, które działa. (uaktualniając moją odpowiedź odpowiednio) – tardate

4

Ponadto zmianie Gemfile i run „pakiet aktualizacji grabie” musi działać dla mnie:

gem uninstall rake -v 0.9.2.2 
gem uninstall rake -v 0.9.2 
gem install rake -v 0.8.7 
Powiązane problemy