如何在构建另一个gem时使用私有gem服务器托管gem

lik*_*sky 3 rubygems gemspecs

如果我已经构建了一个私有gem(例如在我的公司内部托管),那么我想在我正在构建的另一个gem(不是app!)中重用那个gem,我该怎么做?

我在哪里放置我的依赖项并告诉我的新gem如何找到旧的(已经构建的)私有托管的gem?

lik*_*sky 5

所以这花了我一段时间才弄清楚,因为答案是,它在两个地方.做这个:

  • 在gem的Gemfile中(是的,Gemfile,而不是.gemspec),添加私有gem服务器的源代码行.如果您还从RubyGems中提取,那么它看起来像这样:
source 'http://rubygems.org'
source 'http://myrubygems.mycompany.example.com:8808'  # Or wherever your gems are hosted internally (or externally)
gemspec
Run Code Online (Sandbox Code Playgroud)
  • 然后,在mynewgem.gemspec中输入以下内容:
Gem::Specification.new do |gem|
  # [...]
  gem.add_dependency 'myoldgem'  # the gem hosted at myrubygems.mycompany.example.com:8808
end
Run Code Online (Sandbox Code Playgroud)

这个工作的原因可能很明显:你的Gemfile指定你的gems的源,你的.gemspec指定依赖.

希望这可以节省几分钟.