2011-09-15 27 views
10

Nếu có hai đá quý, AB. A1.0.0 tùy thuộc vào B1.0.0.Tôi có thể buộc phụ thuộc của đá quý vào gemfile không?

Trong Gemfile tôi:

gem 'A', '~> 1.0.0' 

Sau đó chạy bundle. Nó sẽ tạo ra một Gemfile.lock như:

A (1.0.0) 
    B (1.0.0) 

Nhưng nếu tôi muốn buộc A sử dụng B1.0.1, việc thực hành tốt nhất là gì? Hơn nữa, nếu B1.0.1 không được phát hành mà là thẻ github?

Trả lời

12

Bạn sẽ cần chỉ định rõ ràng đá quý B trong Gemfile của bạn để sử dụng kho lưu trữ git hoặc phiên bản khác. Miễn là A 1.0.0 tương thích với B 1.0.1 bạn sẽ ổn. Nếu nó chỉ tương thích với B 1.0.0 thì bạn sẽ phải tạo một nhánh của đá quý A và nâng cấp gemspec tương thích với B 1.0.1 và sau đó sử dụng kho lưu trữ đó làm đá quý cho A thay vì rubygems phiên bản.

Đây là mẫu Gemfile sẽ cung cấp cho bạn những gì bạn muốn, miễn là A 1.0.0 tương thích với B 1.0.1.

gem 'B', :git => 'git://github.com/B/B.git', :tag => '1.0.1' 
gem 'A', '~> 1.0.0' 
Các vấn đề liên quan