2011-09-15 5 views
10

두 개의 보석이있는 경우 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'