2011-09-15 18 views
10

2つの宝石がある場合はABです。 A1.0.0B1.0.0に依存します。私のGemfileにgemfileへのgemの依存関係を強制できますか?

:次に

gem 'A', '~> 1.0.0' 

bundleを実行します。それは次のようにGemfile.lockを生成します。

A (1.0.0) 
    B (1.0.0) 

しかし、私はB1.0.1を使用するAを強制したい場合は、ベストプラクティスは何ですか?さらに、B1.0.1がリリースではなくgithubタグであれば?

答えて

12

gitリポジトリまたは別のバージョンを使用するには、GemfileにB宝石を明示的に指定する必要があります。 A 1.0.0がB 1.0.1と互換性がある限り、問題ありません。 B 1.0.0とのみ互換性がある場合は、A宝石の独自のフォークを作成し、B 1.0.1と互換性があるようにgemspecをアップグレードしてから、そのリポジトリをrubygemsではなくAの宝石として使用する必要がありますバージョン。

ここには、1.0.0がB 1.0.1と互換性があるという条件で、あなたに必要なサンプルGemfileがあります。

gem 'B', :git => 'git://github.com/B/B.git', :tag => '1.0.1' 
gem 'A', '~> 1.0.0' 
関連する問題