宝石规格中的私人宝石



我的 gem 中需要私有 gem,而 gemspec 依赖项不能包含 git 存储库。

所以我用 geminabox 盯着我的私人服务器,并将源代码添加到我的 gemfile 中。

当我捆绑安装或安装名为"核心"的 gem 时,然后从 rubygems 而不是从我的存储库中安装 gem。

如何在宝石规格中指定自己的宝石?

最后,

如果他们发布的版本比您大,并且您捆绑更新它,捆绑包将获得他们的新版本,所以要非常小心。

更改 Gemfile 中源行的顺序,优先级按相反的顺序排列:

source 'https://rubygems.org'
source 'http://yourgeminaboxhost/gems'

不过,请确保使用的版本规范将解析为已发布的 gem 版本:

gem 'core', '0.0.1'    # If both gems have that version, it will get the one
                       # in the last sourced gem server
gem 'core', '~> 0.0.1' # This will get the greatest version greater than 0.0.1 and 
                       # lower than 0.1.0 in any of the sources so be careful
                       # because the one in rubygems is 0.0.6 > 0.0.1

另一种选择是将版本号增加到大于他们的版本号,并在 gemfile 中指定它,假设您将 gem 发布为 1.0.0:

gem 'core', '~> 1.0.0' # This will get your releases until they start to 
                          # release a version greater than 1.0.0

最后的手段是更改名称,可能是命名间距,因为如果有人在 Gemfile 中发布了与您的版本规范匹配的更大版本,则始终存在从 rubygems.org 获取版本的风险。

派对迟到了,但对于任何发现这个问题的人来说,当前的答案是向您的环境添加一个私有 gem 源。

gem sources --add http://localhost:9292

更多信息可以在这里找到:https://guides.rubygems.org/run-your-own-gem-server/

相关内容

  • 没有找到相关文章

最新更新