Ruby 宝石的麻烦和宝石的依赖

Ruby 宝石的麻烦和宝石的依赖,ruby,rvm,bundler,Ruby,Rvm,Bundler,我有3个应用程序-应用程序A是一个容器应用程序。它使用一个名为app B的Gem。app B依赖于第三个app,称为app C 所有3个应用程序都使用同一版本的ruby # inside ~/app_a: ruby-1.9.3-p327@mnhg # $GEM_PATH: /Users/lfender/.rvm/gems/ruby-1.9.3-p327@mnhg:/Users/lfender/.rvm/gems/ruby-1.9.3-p327@global` #app_a Gemfile ge

我有3个应用程序-应用程序A是一个容器应用程序。它使用一个名为app B的Gem。app B依赖于第三个app,称为app C

所有3个应用程序都使用同一版本的ruby

# inside ~/app_a: ruby-1.9.3-p327@mnhg
# $GEM_PATH: /Users/lfender/.rvm/gems/ruby-1.9.3-p327@mnhg:/Users/lfender/.rvm/gems/ruby-1.9.3-p327@global`

#app_a Gemfile
gem 'app_b', :path => '../app_b'

`bundle install` ---------------

#App A Gemfile.lock
PATH
remote: ../app_b
specs:
  app_b (0.0.8)
    dependency_1
    dependency_2
现在,app_b的.gemspec中列出的依赖性已经被app_a,hooray解决了

#App B Gemspec
gem.add_dependency 'dependency_1'
gem.add_dependency 'dependency_2'
但是关于app_b/Gemfile呢,我在这里列出了第三个本地依赖项

# using ruby-1.9.3-p327@global

#App B Gemfile
gem 'app_c', :path => '../app_c'

如果我们查看上面应用程序A的Gemfile.lock,您可以看到依赖性未列出。当我使用一个本地应用程序,该应用程序使用一个本地gem,而该本地gem使用另一个本地gem(同时解析其依赖关系)时,如何加载和解析这样的2级依赖关系?

您需要在gem规范中指定所有依赖关系,使用Gemfile for gems不是rubygems“标准”的一部分,rubygems只知道
gem.add_dependency
gem.add_development_dependency
gem.add_runtime_dependency
,其中
add_dependency
是的别名,但是我还没有找到一种方法来使用gem.add_依赖于本地源。然后您需要将依赖项添加到使用的顶部
Gemfile
中。