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

时间:2013-01-26 01:05:56

标签: rubygems gemspecs

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

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

1 个答案:

答案 0 :(得分: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
  • 然后,在mynewgem.gemspec中输入以下内容:
Gem::Specification.new do |gem|
  # [...]
  gem.add_dependency 'myoldgem'  # the gem hosted at myrubygems.mycompany.example.com:8808
end

这个工作的原因可能是显而易见的:你的Gemfile指定你的gems的源,你的.gemspec指定了依赖。

希望这可以节省几分钟。