如何从Rake任务中运行Rake任务?

我有一个Rakefile,它根据全局变量$build\u type以两种方式编译项目,可以是:debug:release(结果放在单独的目录中):

任务:构建=>[:一些其他任务]可以
终止

我希望创建一个任务,依次使用两种配置编译项目,如下所示:

任务:构建
[:debug,:release]。每个do | t|
$build\u type=t
#调用任务:使用它所依赖的所有任务生成(?)
终止
终止

有没有一种方法可以像调用方法一样调用任务?或者我怎样才能实现类似的目标

如果您需要将任务作为一种方法,那么使用实际的方法如何

任务:构建=>[:一些其他任务]可以
建筑
终止
任务:构建你所做的一切
[:debug,:release]
终止
def生成(类型=:调试)
# ...
终止

如果您更愿意坚持使用rake的习惯用法,以下是您的可能性,这些是根据过去的答案编译而成的:

  • 它始终执行任务,但不执行其依赖项:

    Rake::Task[“build”]。执行
    
  • 这一个执行依赖项,但它仅在以下情况下执行任务:
    尚未调用它:

    Rake::Task[“build”]。调用
    
  • 这首先重置任务的已调用状态,允许任务
    然后再次执行,依赖项和所有:

    Rake::Task[“build”]。可重新启动
    Rake::Task[“build”]。调用
    
  • 请注意,除非重新启用依赖项,否则不会自动重新执行已调用的依赖项。在Rake>=10.3.2中,您还可以使用以下命令重新启用这些功能:

    Rake::Task[“build”]。所有先决条件任务。每个(&:可重入)
    

发表评论