2011-09-15 11 views
10

Si hay dos gemas, A y B. A1.0.0 depende de B1.0.0.¿Puedo forzar las dependencias de una gema en gemfile?

En mi Gemfile:

gem 'A', '~> 1.0.0' 

A continuación, ejecute bundle. Se generará una Gemfile.lock como:

A (1.0.0) 
    B (1.0.0) 

Pero si quiero forzar A utilizar B1.0.1, ¿cuál es la mejor práctica? Además, si el B1.0.1 no es una versión, ¿pero una etiqueta github?

Respuesta

12

Deberá especificar explícitamente la gema B en su Gemfile para usar un repositorio git u otra versión. Siempre que A 1.0.0 sea compatible con B 1.0.1, estarás bien. Si solo es compatible con B 1.0.0, entonces tendrás que crear tu propio tenedor de la gema A y actualizar el Gemspec para que sea compatible con B 1.0.1 y luego usar ese repositorio como tu gema para A en lugar de rubygems versión.

Aquí hay un Gemfile de muestra que debería darle lo que desea, siempre que A 1.0.0 sea compatible con B 1.0.1.

gem 'B', :git => 'git://github.com/B/B.git', :tag => '1.0.1' 
gem 'A', '~> 1.0.0' 
Cuestiones relacionadas