循环依赖于rake包任务



我已经创建了自己的'重力' gem(参见RubyGems),它有自己的重力。.

问题是:当我运行rake rdoc后运行rake package时,我看到这个错误

rake aborted!
Circular dependency detected: TOP => package => pkg/gravaty-3.3.1.tgz => pkg/gravaty-3.3.1 => html/index.html => html/index.html
Tasks: TOP => package => pkg/gravaty-3.3.1.tgz => pkg/gravaty-3.3.1 => html/index.html
(See full trace by running task with --trace)

相反,如果我在rake clean clobber之后运行相同的命令,那么没有RDoc html文件夹,就不会出现问题。

这个http://hg.savannah.gnu.org/hgweb/gravaty/file/923b9133aefc/Rakefile是Rakefile.

http://hg.savannah.gnu.org/hgweb/gravaty/file/923b9133aefc/gravaty.gemspec是gemspec。似乎,如果我从第34行(a_gem.files = Dir.glob('{examples,html,lib,test}/**/*') + COMMON_FILES)中删除html文件夹,它就会起作用……但是为什么我要从包中删除RDoc呢?我宁愿留着它。

这个http://hg.savannah.gnu.org/hgweb/gravaty/file/923b9133aefc/Gemfile,即使不是那么有用,也是Gemfile。

重提一个老问题,也许你已经有了解决方案;但是我在一个更简单的Rakefile中研究一个令人困惑的循环依赖错误时发现了你的问题,并认为这将对其他人搜索有帮助。

我不能提供一个确切的答案,然而——

在10中有一个任务命名空间/作用域问题。x Rake,看这里。要告诉Rake返回到顶层开始查找,在先决条件任务名称前加上^,例如task 'foo:bar' => '^bar'来调用顶层任务"bar",而不是再次调用"foo:bar"任务(循环)。

我猜这里的问题与Rubygems package任务有关,我会向Rubygems团队提交一个bug/查询,或者在他们的邮件列表中发布。

最新更新