2011-11-03 12 views
20

Tôi đã thực hiện cập nhật gói bây giờ tôi vẫn còn cảnh báo không được dùng nữa/rdoctask sau khi chạy lệnh rake.Tôi vẫn còn cảnh báo ngừng sử dụng rake/rdoctask

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 

Tôi đã cố gắng đọc mẹo này http://matthew.mceachen.us/blog/howto-fix-rake-rdoctask-is-deprecated-use-rdoc-task-instead-1169.html nhưng Rakefile của tôi là OK.

Tôi không biết, cách giải quyết vấn đề này. Có lời khuyên nào không? Cảm ơn rất nhiều.

Martin

+1

Tôi vẫn đang chiến đấu với vấn đề này với một số dự án. Với tất cả những điều hiển nhiên được quan tâm (rdoc vv) nó vẫn còn làm tôi thất vọng. Tôi mạnh mẽ nghi ngờ một số đá quý trong dự án .. nhưng theo dõi vấn đề xuống là một vấn đề. Có ai biết làm thế nào để có được ruby ​​/ cào để báo cáo vị trí mã chính xác của bất cứ điều gì gây ra CẢNH BÁO? – tardate

Trả lời

19

Bạn có thể có nhiều phiên bản của cào trên hệ thống của bạn và bạn có thể xem chúng bằng cách chạy

$ gem list 
=> rake 

(0.9.2.2, 0.9.2, 0.8.7) Để xác định một phiên bản trong dự án của tôi, định nghĩa nó trong Gemfile như

gem 'rake', '0.8.7' 

sau đó chạy

bundle update rake 

Phiên bản dự án của bạn hiện đã được chỉ định trong Gemfile và CẢNH BÁO của bạn hiện đã biến mất.

+0

Giải pháp của bạn phù hợp với tôi, cảm ơn – Steven

+3

Tôi không có nhiều phiên bản cào. – mcr

3

Trong một số dự án mà không gọi toàn bộ đường ray ngăn xếp, thêm rdoc đến Gemfile là chìa khóa dẫn đến thành công cho tôi:

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

UPDATE: Đây vẫn bugging tôi với một 3.0.x ray dự án. Rakefile, đá quý tất cả dường như ok nhưng tôi vẫn nhận được vấn đề. Để tìm hiểu chính xác nơi các cảnh báo wacoming từ tôi đặt một con chim hoàng yến trong đá quý/cào-0.9.2.2/lib/cào/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 

này ngay lập tức đã chỉ ra vấn đề này trong các đường ray ngăn xếp riêng của mình. Một kiểm tra nhanh chóng và rõ ràng là đường ray 3.0.8 có đầy đủ các yêu cầu cho rake/rdoctask. Đang cập nhật lên đường ray (3.0.9 hoặc cao hơn tôi tin) sẽ khắc phục sự cố (hoặc bạn có thể hạ cấp cào như những người khác đã đề xuất).

Nhưng trong khi bạn đang mắc kẹt trên ~ 3.0.8 và không muốn hạ cấp cào, bạn có thể ngăn chặn các cảnh báo bằng cách thiết lập ignore_deprecate trong Rakefile của bạn:

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 

Tại sao ngăn chặn cảnh báo? Động lực chính của tôi là đảm bảo các công việc cron gọi rake không đăng nhập và xuất ra email giả mạo.

+0

Điều này đã không làm việc trong trường hợp của tôi .. – e3matheus

+0

yeah, nó trở lại để lỗi cho tôi quá. Bí quyết rdoc sẽ chăm sóc một nguyên nhân, nhưng có những thứ khác ... – tardate

+0

ok bây giờ tôi rất vui: có một giải pháp đang hoạt động. (cập nhật câu trả lời của tôi cho phù hợp) – tardate

4

Ngoài thay đổi Gemfile và chạy 'bó cập nhật cào' cần chạy cho tôi quá:

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