强制Bundler使用我的宝石源

时间:2014-03-13 05:34:02

标签: ruby bundler geminabox

我正在使用geminabox运行我自己的gem服务器。这个宝石服务器托管了几个公共宝石的私人分支,以及我自己的宝石。我有一个Gemfile,其源代码如下:

source https://rubygems.org
source http://my/gem/server

当Bundler安装捆绑包时,我希望它始终使用我的gem服务器上可用的版本(如果它存在)并满足版本要求。我无法让这个工作。相反,捆绑器似乎从rubygems中提取,除非它找不到具有相同名称的gem。这可能是因为rubygems上的版本更高。但是,bundler的文档没有提到版本号。这是它描述源优先级的方式:

  

消息来源优先权
  在尝试定位gem以满足gem要求时,bundler使用以下优先级顺序:

     

明确附加到gem的源(使用:path或:git)
  对于隐式gem(显式gems的依赖),否则声明任何git或path存储库。这导致捆绑器将来自Rails git存储库的ActiveSupport gem优先于rubygems.org中的gem   通过源指定的源,搜索Gemfile中的每个源从上次添加到第一个添加。

另外,我知道可以在Gemfile中明确列出每个gem的源代码。我宁愿避免这种情况,因为我有很多自己的宝石,而且在Gemfile中为依赖项的依赖项做出显式条目是很烦人的(你必须这样做,因为bundler不会读取依赖项的Gemfile)。 / p>

我如何实现目标?

0 个答案:

没有答案