覆盖rake任务和rake任务依赖项?

时间:2017-05-05 19:33:24

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

我正在使用一个构建系统来定义一些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任务的依赖关系?

1 个答案:

答案 0 :(得分:1)

在定义任务之前使用此功能:

Rake::Task[:test].clear

这是在rake gem文件lib / rake / task.rb中实现的 您可以看到它还支持 clear_prerequisites clear_actions clear_comments clear_args clear 做了所有四件事。)