Gregorio Kusowski

Gregorio Kusowski

Software Engineer

© 2020

Como utilizar diferentes Gemfiles no mesmo projeto

Hoje já é bem comum a utilização do Bundler para a gestão de dependências em diversos projetos.

Trabalho com um projeto que roda tanto em MRI quanto em JRuby, e conforme nosso Gemfile foi aumentando de tamanho, alguns ifs foram surgindo. Dentre eles, alguns de plataforma, para definirmos quais gems utilizariamos em cada ambiente. Os grupos não eram suficientes, então optamos por criar 2 arquivos Gemfile.

Um deles, continuava se chamando Gemfile, já o outro, Gemfile.jruby.

Para executar o comando bundle install com a versão alternativa, existem duas possibilidades(supondo que o Gemfile alternativo se chame Gemfile.custom):

bundle install --gemfile Gemfile.custom

e

export BUNDLE_GEMFILE=Gemfile.custom
bundle install

A segunda opção pode ser bastante útil quando for necessário utilizar a configuração em algum ambiente no qual seja necessário executar deploy/etc.

Se você acha que o Bundler oferece mais do que você precisa, e está afim de testar algo mais simples, recomendo o DEP. Seu funcionamento é bem simples(comparando ao camarada popular ;)), porém ele acaba exigindo o uso de gemsets para evitar conflito entre versões de gems.