Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 将任务放在其他文件中_Ruby_Rake - Fatal编程技术网

Ruby 将任务放在其他文件中

Ruby 将任务放在其他文件中,ruby,rake,Ruby,Rake,我试图在一个项目中使用rake,如果我将所有内容都放入Rakefile中,它将非常庞大,很难读取/查找内容,因此我尝试将每个名称空间都粘贴到lib/rake中自己的文件中,我在rake文件的顶部添加了以下内容: Dir['#{File.dirname(__FILE__)}/lib/rake/*.rake'].map { |f| require f } 它加载文件没有问题,但没有任务。我现在只有一个.rake文件作为测试,名为“servers.rake”,它如下所示: namespace :se

我试图在一个项目中使用rake,如果我将所有内容都放入Rakefile中,它将非常庞大,很难读取/查找内容,因此我尝试将每个名称空间都粘贴到lib/rake中自己的文件中,我在rake文件的顶部添加了以下内容:

Dir['#{File.dirname(__FILE__)}/lib/rake/*.rake'].map { |f| require f }
它加载文件没有问题,但没有任务。我现在只有一个.rake文件作为测试,名为“servers.rake”,它如下所示:

namespace :server do
    task :test do
        puts "test"
    end
end
所以当我运行
rakeserver:test
时,我希望看到一行代码显示为“test”,而不是

rake aborted!
Don't know how to build task 'server:test'
起初我认为我的代码错了,但如果我将lib/rake/servers.rake的内容复制到Rakefile中,它就可以正常工作


如何使另一个文件中的rake任务工作?

需要将rake文件中的行更改为

Dir.glob('lib/rake/*.rake').each { |r| import r }