2011-09-15 8 views
10

यदि दो रत्न हैं, A और BA1.0.0B1.0.0 पर निर्भर करता है।क्या मैं रत्न में एक मणि की निर्भरताओं को मजबूर कर सकता हूं?

मेरी Gemfile में:

gem 'A', '~> 1.0.0' 

फिर bundle चलाते हैं। ऐसा लगता है कि एक Gemfile.lock उत्पन्न करेगा:

A (1.0.0) 
    B (1.0.0) 

लेकिन अगर मैं B1.0.1 उपयोग करने के लिए A बाध्य करना चाहते हैं, सबसे अच्छा अभ्यास क्या है? इसके अलावा, अगर B1.0.1 रिलीज़ नहीं है लेकिन एक गिथब टैग है?

उत्तर

12

आपको गिट रेपॉजिटरी या किसी अन्य संस्करण का उपयोग करने के लिए अपने जेमफाइल में बी मणि को स्पष्ट रूप से निर्दिष्ट करने की आवश्यकता होगी। जब तक 1.0 1.0 बी 1.0.1 के साथ संगत है, तो आप ठीक होंगे। यदि यह केवल बी 1.0.0 के साथ संगत है तो आपको ए मणि का अपना कांटा बनाना होगा और जी 1.0.1 के साथ संगत होने के लिए gemspec को अपग्रेड करना होगा और फिर उस संग्रह को रूबीजम्स के बजाय ए के लिए अपने मणि के रूप में उपयोग करना होगा संस्करण।

यहां एक नमूना जेमफाइल है जो आपको जो चाहिए उसे देना चाहिए, बशर्ते ए 1.0.0 बी 1.0.1 के साथ संगत है।

gem 'B', :git => 'git://github.com/B/B.git', :tag => '1.0.1' 
gem 'A', '~> 1.0.0' 
संबंधित मुद्दे

 संबंधित मुद्दे