2011-11-03 14 views
20

He hecho actualización de paquetes ahora, todavía tengo rake/rdoctask obsoleta advertencia después de ejecutar el comando rake.Todavía tengo rake/rdoctask obsoleta advertencia

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 

Traté de leer este consejo http://matthew.mceachen.us/blog/howto-fix-rake-rdoctask-is-deprecated-use-rdoc-task-instead-1169.html pero mi Rakefile está bien.

No tengo ni idea, cómo resolver este problema. ¿Algun consejo? Muchas gracias.

Martin

+1

todavía estoy luchando contra este problema con una serie de proyectos. Con todas las cosas obvias atendidas (rdoc, etc.) todavía me molesta. Sospecho fuertemente de algunas gemas en el proyecto ... pero seguir el problema es un problema. ¿Alguien sabe cómo obtener Ruby/Rake para informar la ubicación exacta del código de lo que causó la ADVERTENCIA? – tardate

Respuesta

19

Puede tener varias versiones de rastrillo en el sistema y se puede ver mediante la ejecución

$ gem list 
=> rake 

(0.9.2.2, 0.9.2, 0.8.7) Para definir una versión en mi proyecto, lo definen como en el Gemfile

gem 'rake', '0.8.7' 

continuación, ejecute

bundle update rake 

La versión de su proyecto está ahora como se especifica en el Gemfile y su ADVERTENCIA ahora se ha ido.

+0

Su solución funcionó para mí, gracias – Steven

+3

No tengo múltiples versiones de rastrillo. – mcr

3

En algunos proyectos que no invocan la totalidad de los carriles de pila, añadiendo rdoc a la Gemfile fue la clave del éxito para mí:

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

ACTUALIZACIÓN: Esto todavía me estaba molestando con un 3.0.x rieles proyecto. Rakefile, todas las gemas parecían estar bien, pero todavía estaba recibiendo el problema. Para saber exactamente donde la advertencia de wacoming puse un canario en gemas/rastrillo-0.9.2.2/lib/rastrillo/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 

Esto inmediatamente señaló al tema en los carriles propia pila. Una comprobación rápida y es evidente que los rieles 3.0.8 están llenos de necesidades para rake/rdoctask. La actualización de los rieles (creo que 3.0.9 o superior) soluciona el problema (o puede degradar el rake como otros sugirieron).

Pero mientras usted está atascado en ~ 3.0.8 y no desea rebajar rastrillo, se puede suprimir la advertencia estableciendo ignore_deprecate en su 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 

Por qué suprimir la advertencia? Mi motivación principal era asegurarme de que los trabajos cron que invocan rake no inicien sesión y envíen correos electrónicos espurios.

+0

Esto no funcionó en mi caso ... – e3matheus

+0

Sí, es volver a molestarme también. El truco de rdoc se ocupa de una causa, pero hay otras ... – tardate

+0

ok, estoy contento: tengo una solución que funciona. (actualizando mi respuesta en consecuencia) – tardate

4

Además del cambio Gemfile y correr 'paquete de actualización rastrillo' necesita ejecutar para mí también:

gem uninstall rake -v 0.9.2.2 
gem uninstall rake -v 0.9.2 
gem install rake -v 0.8.7 
Cuestiones relacionadas