2010-05-23 37 views
5

Tôi đang cố gắng sử dụng cào trong một dự án, và nếu tôi đặt mọi thứ vào Rakefile nó sẽ rất lớn và khó đọc/tìm mọi thứ, vì vậy tôi đã cố gắng gắn từng tên trong tập tin riêng của nó trong lib/rake, tôi đã thêm phần này vào đầu tập tin cào của tôi:Rake nhiệm vụ trong các tập tin khác

Dir['#{File.dirname(__FILE__)}/lib/rake/*.rake'].map { |f| require f } 

nó tải tệp không có vấn đề, nhưng không có tác vụ. Tôi chỉ có một tập tin .rake như một thử nghiệm cho bây giờ gọi là "servers.rake" và nó trông như thế này:

namespace :server do 
    task :test do 
     puts "test" 
    end 
end 

nên khi tôi chạy rake server:test id mong đợi để xem một dòng xuất hiện nói rằng "test", thay vào đó tôi nhận được

rake aborted! 
Don't know how to build task 'server:test' 

lúc đầu Tôi nghĩ mã của tôi sai nhưng nếu tôi sao chép nội dung của lib/rake/servers.rake vào Rakefile nó hoạt động tốt.

Làm cách nào để nhận các tác vụ cào cào để hoạt động trong một tệp khác?

Trả lời

7

cần thiết để có sự thay đổi trong file cào để

Dir.glob('lib/rake/*.rake').each { |r| import r } 
Các vấn đề liên quan