0

我用自己的 gravaty.gemspec 文件和主要任务的 Rakefile 创建了我自己的 'gravaty' gem(参见 RubyGems)。

问题是:当我跑完rake package后跑rake rdoc我看到这个错误

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,那么没有 RDochtml文件夹,问题就不会出现。

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

这个http://hg.savannah.gnu.org/hgweb/gravaty/file/923b9133aefc/gravaty.gemspec是 gemspec。看来,如果我html从第 34 行 ( a_gem.files = Dir.glob('{examples,html,lib,test}/**/*') + COMMON_FILES) 中删除该文件夹,它可以工作......但我为什么要从包中删除 RDoc?我宁愿保留它。

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

4

1 回答 1

1

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

但是,我无法提供确切的答案——

10.x Rake 中存在任务命名空间/范围问题,请参见此处。要告诉 Rake 返回顶层开始查找,请在先决任务名称前加上^,例如,task 'foo:bar' => '^bar'调用顶层任务“bar”,而不是再次调用“foo:bar”任务(循环)。

我想这里的问题在于 Rubygemspackage任务,我会向 Rubygems 团队提交错误/查询,或者在他们的邮件列表上发布。

于 2014-12-14T03:22:56.673 回答