【问题标题】:Is it possible to use in a Rakefile tasks from another one?是否可以在另一个 Rakefile 任务中使用?
【发布时间】:2010-02-26 16:41:38
【问题描述】:

我有一些 Rake 任务想在我的 Rakefiles 中使用。是否可以从另一个 rakefile 包含一个 rakefile 中定义的任务?

【问题讨论】:

    标签: ruby rake rakefile


    【解决方案1】:

    Rake 文件与 ruby​​ 文件没有什么不同。 因此,只需在文件 B 中加载包含其他任务的文件 A,它们将在执行 B 时可用。

    例如,如果您将以下代码放入您的 Rakefile 中

    Dir['tasks/*.rake'].each { |file| load(file) }
    

    然后您可以在tasks 子文件夹中创建尽可能多的.rake 文件并从主Rakefile 调用它们。

    【讨论】:

    • 是的。我总是这样做,以a)每个文件保留一个域(gem.rake 中的所有 gem 相关任务,test.rake 中的所有测试相关任务,doc.rake 中的所有文档相关任务)和 b)在不同的项目(调用RDoc、RSpec、RubyGems其实是一样的,与具体项目无关)。
    【解决方案2】:

    我刚刚做了以下类似的事情:

    task :master do
      `rake slave`
    end
    
    task :slave do
      puts "Hello World"
    end
    

    可能有点简陋,但它可以完成工作。

    【讨论】:

    • 我相信这种策略虽然可能有效,但并不理想。改为尝试:Rake::Task[:'slave'].invoke 用于主任务。
    猜你喜欢
    • 1970-01-01
    • 2018-07-05
    • 2013-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-20
    • 1970-01-01
    相关资源
    最近更新 更多