1

3 つのアプリがあります。アプリ A はコンテナー アプリです。アプリ B と呼ばれる Gem を使用します。アプリ B は、アプリ C と呼ばれる 3 番目のアプリに依存しています。

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'

しかし、3 番目のローカル依存関係の概要を説明した app_b/Gemfile はどうですか?

# using ruby-1.9.3-p327@global

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

上記のアプリ A の Gemfile.lock を見ると、依存関係がリストされていないことがわかります。別のローカル gem を使用するローカル gem を使用するローカル アプリを使用している場合 (その依存関係も解決します)、このような 2 レベルの依存関係を読み込んで解決するにはどうすればよいですか?

4

1 に答える 1

2

gem の仕様ですべての依存関係を指定する必要があります。gem に Gemfile を使用することは ruby​​gems の「標準」の一部ではありません。rubygems はgem.add_dependency, gem.add_development_dependencyandのみを知っています。gem.add_runtime_dependencyadd_dependencyadd_runtime_dependency

于 2013-08-08T23:40:28.053 に答える