我想让邦德勒装本地宝石。有别的选择吗?或者我必须将gem文件夹移动到.bundle目录?
我相信你能做到:
gem "foo", path: "/path/to/foo"
除了指定路径(如Jimmy提到的),你还可以使用以下配置选项强制Bundler使用本地gem 仅针对您的环境:
$ bundle config set 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 set local.rack ~/Work/git/rack
如在的文档中所见。
你也可以用git引用一个本地gem,如果你碰巧正在使用它的话。
gem 'foo', :git => '/Path/to/local/git/repo', :branch => 'my-feature-branch'
然后,如果有变化,我就跑
bundle exec gem uninstall foo bundle update foo
但我不确定每个人都需要执行这两个步骤。
为了在Rails项目中使用本地gem存储库,请遵循以下步骤:
检查你的gem文件夹是否是git仓库(命令在gem文件夹中执行)
git rev-parse --is-inside-work-tree
Getting repository path (the command is executed in the gem folder)
git rev-parse --show-toplevel
Setting up a local override for the rails application
bundle config local.GEM_NAME /path/to/local/git/repository
其中GEM_NAME是你的宝石的名字,/path/to/local/git/repository是点2
GEM_NAME
/path/to/local/git/repository
2
Gemfile
gem 'GEM_NAME', :github => 'GEM_NAME/GEM_NAME', :branch => 'master'
Running bundle install should give something like this:
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)
where 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
RubyMine
stop/start
version
gem 'GEM_NAME', '0.0.2', :github => 'GEM_NAME/GEM_NAME', :branch => 'master'
如果你也想要分支:
gem 'foo', path: "point/to/your/path", branch: "branch-name"
你可以用source引用宝石:
source: 'https://source.com', git repository (:github => 'git/url')
:path => '.../path/gem_name'。
:path => '.../path/gem_name'
你可以了解更多关于[Gemfiles和如何使用它们]