好的,我有基于 knoopx 所说的解决方案。这是我的主文件:
task :default do
FileList["*/**/rakefile*.rb"].each do |project|
# clear current tasks
Rake::Task.clear
#load tasks from this project
load project
if !Rake::Task.task_defined?(:default)
puts "No default task defined in #{project}, aborting!"
exit -1
else
dir = project.pathmap("%d")
Dir.chdir(dir) do
default_task = Rake::Task[:default]
default_task.invoke()
end
end
end
puts "Done building projects"
end
Run Code Online (Sandbox Code Playgroud)
子目录中的每个 rakefile 必须包含默认任务的定义。