Ruby 使用rake导入(调用其他rakefile)
这是我的主要rake文件Ruby 使用rake导入(调用其他rakefile),ruby,import,rake,rakefile,Ruby,Import,Rake,Rakefile,这是我的主要rake文件 subrake = 'subrake' task :init => [subrake] do #call subrake.build end import subrake 我看到了关于上述步骤如何工作的文档,但我不知道如何在另一个子rake文件中调用任务。顺便说一句,这些任务可能与我的任务同名,这是一个问题吗?我想我的回答迟到了,但我刚才问了同样的问题。因此,这个解决方案可能对某些人有用 Rakefile.rb subrake.rb 我想代码本身描述得很
subrake = 'subrake'
task :init => [subrake] do
#call subrake.build
end
import subrake
我看到了关于上述步骤如何工作的文档,但我不知道如何在另一个子rake文件中调用任务。顺便说一句,这些任务可能与我的任务同名,这是一个问题吗?我想我的回答迟到了,但我刚才问了同样的问题。因此,这个解决方案可能对某些人有用 Rakefile.rb subrake.rb
我想代码本身描述得很好,但我想先停一下。调用require时,应为子rake文件提供完整路径(如我的示例中所示)或“.\subrake”(如果在工作目录中)如果有多个子rake文件,则可以执行以下操作
Dir.glob('**/*.rake').each { |r| import r}
task :init => ["subrake:init"]
你可以有一个sub.rake文件,看起来像这样
namespace :subrake do
desc "Init"
task :init do
puts 'Init called'
end
end
和另一个foo.rake文件
subrake = 'subrake'
task :init => [subrake] do
#call subrake.build
end
import subrake
namespace :foorake do
desc "Init"
task :init do
puts 'Init called'
end
end
您可以从shell调用foorake:init,如下所示
#rake foorake:init
或者把它添加到你的主要任务中,像这样做
task :init => ["subrake:init", "fforake:init"]
我喜欢这个答案,因为它更接近于Minitest和RSpec的工作方式,以及搜索特定类型的文件。
task :init => ["subrake:init", "fforake:init"]