Answers:
我相信您可以这样做:
gem "foo", path: "/path/to/foo"
spring stop
,请尝试看是否确实是问题所在。
除了指定路径(如Jimmy所述)之外,您还可以通过以下配置选项强制Bundler 为您的环境使用本地gem :
$ bundle config local.GEM_NAME /path/to/local/git/repository
如果要同时开发两个gem或一个gem和rails应用程序,这将非常有用。
但是请注意,这仅在您已经将git用于依赖项时才有效,例如:
# In Gemfile
gem 'rack', :github => 'rack/rack', :branch => 'master'
# In your terminal
$ bundle config local.rack ~/Work/git/rack
正如在文档中所见。
BUNDLE_PATH
(构建用于分发的程序包)。在执行您提出的建议或吉米的答案时,它只会执行using
,而不会实际安装到我的BUNDLE_PATH
文件夹中。我无法弄清楚,有什么帮助吗?
bundle config --delete local.GEM_NAME
bundle config disable_local_branch_check true
否则Bundler会抱怨该分支。不过请务必谨慎,因为检查应该阻止不正确的提交进入Gemfile.lock
。Docs here:bundler.io/v1.12/git.html
如果碰巧正在使用它,也可以使用git引用本地gem。
gem 'foo',
:git => '/Path/to/local/git/repo',
:branch => 'my-feature-branch'
然后,如果它改变了,我运行
bundle exec gem uninstall foo
bundle update foo
但是我不确定每个人都需要执行这两个步骤。
bundle uninstall <gem> && bundle install
,对于要反映在应用程序中的每个更改
为了在Rails项目中使用本地gem仓库,请遵循以下步骤:
检查您的gem文件夹是否是git存储库(命令在gem文件夹中执行)
git rev-parse --is-inside-work-tree
获取存储库路径(命令在gem文件夹中执行)
git rev-parse --show-toplevel
为Rails应用程序设置本地替代
bundle config local.GEM_NAME /path/to/local/git/repository
GEM_NAME
您的gem的名称在哪里,是该/path/to/local/git/repository
点的命令输出2
在您的应用程序中Gemfile
添加以下行:
gem 'GEM_NAME', :github => 'GEM_NAME/GEM_NAME', :branch => 'master'
跑步bundle install
应该给这样的东西:
Using GEM_NAME (0.0.1) from git://github.com/GEM_NAME/GEM_NAME.git (at /path/to/local/git/repository)
GEM_NAME
您的宝石的名称在哪里,/path/to/local/git/repository
从哪里开始2
最后,运行bundle list
,而不是gem list
,您应该看到类似以下内容:
GEM_NAME (0.0.1 5a68b88)
GEM_NAME
你的宝石的名字在哪里
我观察到的一些重要情况:
Rails 4.0.2
ruby 2.0.0p247 (2013-06-27 revision 41674) [x86_64-linux]
Ubuntu 13.10
RubyMine 6.0.3