3

我有一个 gem A,它依赖于 gem B。这两个 gem 都是我自己的,目前正在私人开发中。我没有计划将这些发布到 ruby​​gems。

我想在我的 rails 应用程序中使用 gem A。

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

在任何来源中都找不到 gem 'A (>= 0) ruby​​' 所需的 gem 'B (>= 0) ruby​​'。

在我的 Gemfile 的 Rails 应用程序中,我有

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

在 gem A 的 gemspec 中我有

gem.add_dependency 'B'

在 A 的 Gemfile 中,我明确地设置了 B 的位置,如下所示

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

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

但是,当我运行每个 gem 的测试套件时,它们都通过了。

我相信问题是当我运行 rails 应用程序并且捆绑程序加载依赖项 A 时,它只查看 A 的 gemspec,完全忽略了 gemfile。这可能是故意的。那么如何让我的代码工作而不必在这个开发阶段发布我的私人 gem。

4

1 回答 1

1

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

于 2013-02-18T13:20:08.447 回答