我已经创建了自己的'重力' 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/查询,或者在他们的邮件列表中发布。