gpt4 book ai didi

ruby - gemspec 中的私有(private) gem

转载 作者:数据小太阳 更新时间:2023-10-29 08:32:22 24 4
gpt4 key购买 nike

我的 gem 中需要私有(private) gem,并且 gemspec 依赖项不能包含 git 存储库。

所以我用 geminabox 启动了我的私有(private)服务器,并将源代码添加到我的 gemfile。

当我 bundle 安装或安装名为“核心”的 gem 时,将从 ruby​​gems 而不是我的存储库安装 gem。

如何在 gemspec 中指定我自己的 gem?

最佳答案

最后,如果他们发布的版本比你的版本高,你 bundle 更新它,bundle 会得到他们的新版本,所以要非常小心。

更改 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 中的版本规范匹配的更高版本,则始终存在从 ruby​​gems.org 获取版本的风险。

关于ruby - gemspec 中的私有(private) gem ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19464882/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com