我有3个应用程序 - 应用程序A是一个容器应用程序。它使用名为app B的Gem.App B依赖于第三个应用程序,称为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解决了,很多。
#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'
如果我们查看上面的App A的Gemfile.lock,您可以看到未列出依赖性。当我使用使用本地gem的本地应用程序使用另一个本地gem(同时解析其依赖项)时,如何加载和解析2级依赖关系?
答案 0 :(得分:2)
您需要在gem的规范中指定所有依赖项,使用Gemfile for gems不是rubygems“standard”的一部分,rubygems只知道gem.add_dependency
,gem.add_development_dependency
和gem.add_runtime_dependency
,其中add_dependency
是:add_runtime_dependency
的别名。