如何开发一个依赖于另一个的宝石

时间:2013-02-18 13:15:43

标签: bundler gemfile gemspecs

我有一个宝石A,它依赖于宝石B.这两个宝石都是我自己的,目前正处于私人开发阶段。我没有计划将这些发布到rubygems。

我想在我的rails应用中使用gem A.

问题是当我尝试为我的rails应用程序运行bundle install时出现此错误。

  

无法找到宝石'B(> = 0)ruby',这是宝石'A(> = 0)所需要的   ruby',在任何来源中。

在我的Gemfile中的rails应用程序中

gem 'A', :path => "/path/to/A'

在宝石A的gemspec我有

gem.add_dependency 'B'

并且在A的Gemfile中,我明确地将B的位置设置为

gem 'omusubi', :path => "path/to/B'

当我尝试运行我的rails应用程序时,上面的配置似乎不起作用。

然而,当我运行每个gem的测试套件时,它们都会通过。

我相信问题是当我运行rails app并且bundler加载依赖关系A时,它只会查看A的gemspec,完全忽略gemfile。这可能是有意的。 那么如何让我的代码工作而不必承诺在这个开发阶段发布我的私有宝石。

1 个答案:

答案 0 :(得分:1)

一种可能性是使用:path选项在应用程序的Gemfile中对B进行硬依赖。在这种情况下,Bundler应该正确解决它。