宝石可以有循环依赖吗?

时间:2012-04-16 18:12:32

标签: ruby rubygems dependencies dependency-management circular-dependency

我开发了一个小型宝石生态系统,某些特征会导致它们相互依赖。

RubyGems是否支持循环依赖?换句话说,推出符合这些规格的宝石是否安全?

Gem::Specification.new 'essentials' do |gem|
  gem.add_development_dependency 'development_tools'
end

Gem::Specification.new 'development_tools' do |gem|
  gem.add_runtime_dependency 'essentials'
end

2 个答案:

答案 0 :(得分:2)

从技术上讲,这不是循环依赖,因为每个依赖都是不同的。如果它是一个真正的循环依赖,我会建议将两者合并为一个宝石,但你的宝石名称说明了意图,这是理智的。

它应该可以正常工作。

答案 1 :(得分:1)

没有循环运行时依赖项。

如果奇怪的话,一个gem对另一个对第一个有运行时依赖的gem的开发依赖关系应该没问题。

然而,我会推荐它。我建议确保您的依赖图完全没有循环。