Réponses:
Je pense que vous pouvez le faire:
gem "foo", path: "/path/to/foo"
spring stop
de voir si c'est bien le problème.
En plus de spécifier le chemin (comme l'a mentionné Jimmy), vous pouvez également forcer Bundler à utiliser une gemme locale pour votre environnement uniquement en utilisant l'option de configuration suivante:
$ bundle config local.GEM_NAME /path/to/local/git/repository
Cela est extrêmement utile si vous développez deux gemmes ou une gemme et une application de rails côte à côte.
Notez cependant que cela ne fonctionne que lorsque vous utilisez déjà git pour votre dépendance, par exemple:
# In Gemfile
gem 'rack', :github => 'rack/rack', :branch => 'master'
# In your terminal
$ bundle config local.rack ~/Work/git/rack
Comme on le voit sur les documents .
BUNDLE_PATH
(construire un package pour la distribution). Lorsque vous faites ce que vous avez suggéré, ou la réponse de Jimmy, cela ne fait qu'un using
, et pas réellement l'installation dans mon BUNDLE_PATH
dossier. Je n'ai pas pu comprendre cela, une aide?
bundle config --delete local.GEM_NAME
bundle config disable_local_branch_check true
ou Bundler se plaindra de la branche. Soyez prudent avec cela, car les vérifications sont censées empêcher les validations incorrectes d'entrer Gemfile.lock
. Documents ici: bundler.io/v1.12/git.html
Vous pouvez également référencer une gemme locale avec git si vous travaillez dessus.
gem 'foo',
:git => '/Path/to/local/git/repo',
:branch => 'my-feature-branch'
Ensuite, si ça change, je cours
bundle exec gem uninstall foo
bundle update foo
Mais je ne suis pas sûr que tout le monde doive exécuter ces deux étapes.
bundle uninstall <gem> && bundle install
, pour chaque changement que vous souhaitez refléter sur votre application
Afin d'utiliser le référentiel de gemmes local dans un projet Rails, suivez les étapes ci-dessous:
Vérifiez si votre dossier gem est un référentiel git (la commande est exécutée dans le dossier gem)
git rev-parse --is-inside-work-tree
Obtenir le chemin du référentiel (la commande est exécutée dans le dossier gem)
git rev-parse --show-toplevel
Configuration d'un remplacement local pour l'application de rails
bundle config local.GEM_NAME /path/to/local/git/repository
où GEM_NAME
est le nom de votre bijou et /path/to/local/git/repository
est la sortie de la commande au point2
Dans votre application, Gemfile
ajoutez la ligne suivante:
gem 'GEM_NAME', :github => 'GEM_NAME/GEM_NAME', :branch => 'master'
La course bundle install
devrait donner quelque chose comme ceci:
Using GEM_NAME (0.0.1) from git://github.com/GEM_NAME/GEM_NAME.git (at /path/to/local/git/repository)
où GEM_NAME
est le nom de votre bijou et /path/to/local/git/repository
du point2
Enfin, exécutez bundle list
, non gem list
et vous devriez voir quelque chose comme ceci:
GEM_NAME (0.0.1 5a68b88)
où GEM_NAME
est le nom de ton bijou
Quelques cas importants que j'observe en utilisant:
Rails 4.0.2
ruby 2.0.0p247 (2013-06-27 revision 41674) [x86_64-linux]
Ubuntu 13.10
RubyMine 6.0.3
RubyMine
pas montrer les gemmes locales comme une bibliothèque externe. Plus d'informations sur le bug peuvent être trouvées ici et icistop/start
le serveur railsSi je change la version
gemme, stopping/starting
le serveur Rails me donne une erreur. Afin de le réparer, je spécifie la version gem dans l'application rails Gemfile
comme ceci:
gem 'GEM_NAME', '0.0.2', :github => 'GEM_NAME/GEM_NAME', :branch => 'master'
Vous pouvez référencer des gemmes avec source: source: 'https://source.com', git repository (:github => 'git/url')
et avec chemin local :path => '.../path/gem_name'
.
Vous pouvez en savoir plus sur Gemfiles et comment les utiliser dans cet article.