【问题标题】:Overriding rake tasks and rake task dependencies?覆盖 rake 任务和 rake 任务依赖项?
【发布时间】:2017-10-04 09:12:52
【问题描述】:

我正在使用一个构建系统,它定义了许多 rake 目标,包括这个:

task :test => [:all]

这对我来说似乎不正确,因此我定义了自己的 rake 任务,如下所示:

task :test => [:spec]
task :all => [:test, :build]
task :release => [:all]
task :default => [:release]

但是,现在我在尝试构建我的包时遇到了这个错误:

Circular dependency detected: TOP => default => all => test => all
Tasks: TOP => default => all => test
BUILD FAILED

我开始意识到定义 rake 任务(或 rake 任务的依赖项)只是将那些任务/依赖项附​​加到任务定义中!这真让我抓狂!为什么我不能按照我认为合适的方式重新定义我的 rake 任务?!有没有办法覆盖 rake 任务,和/或覆盖 rake 任务的依赖关系?

【问题讨论】:

标签: ruby rake circular-dependency rake-task rakefile


【解决方案1】:

在定义任务之前使用它:

Rake::Task[:test].clear

这是在 rake gem 中实现的,文件 lib/rake/task.rb 你可以看到它还支持clear_prerequisitesclear_actionsclear_cmetsclear_argsclear em> 做所有四件事)。

【讨论】:

    猜你喜欢
    • 2011-12-28
    • 1970-01-01
    • 2012-01-22
    • 2016-04-01
    • 2016-07-15
    • 2013-06-15
    • 1970-01-01
    • 2010-10-09
    • 1970-01-01
    相关资源
    最近更新 更多