2017-02-09 108 views
0

我有一個私人寶石,名爲X,其源代碼託管在Github上。如果我想在項目中使用X,我將gem 'X', :git => '[email protected]:my-org/x.git'添加到我的項目的Gemfile。然後我可以啓動irb並鍵入require 'bundler/setup',然後require 'x'X的功能可用。如何從其他私人紅寶石寶石中獲得私人紅寶石寶石?

現在,我有一個不同的私人寶石,名爲Y,其源代碼也託管在Github上。我想從Y內使用X

我該如何做到這一點?

回答

-1

如果在github上配置您的SSH密鑰這將工作:

gem 'gem', :git => '[email protected]:user/gem.git', :ref => 'ref' 

您可以測試它通過運行ssh -t [email protected]

其他選擇正在使用您的用戶名和密碼,基本身份驗證:

gem 'gem', git: 'https://user:[email protected]/user/gem.git' 

或者更安全地使用環境變量來保護您的密碼:

gem 'gem', :git => "https://#{ENV['gem_username']}:#{ENV['gem_password']}@github.com/gem.git" 

如果您使用CI服務器來部署項目,這最後一個例子也是一個好主意。

+0

假設您建議將這些行放入gem的'Gemfile'中,這不起作用。當運行'gem build y.gemspec'時,你會收到一個錯誤,指出:'git source [email protected]:my-org/x.git還沒有簽出。在嘗試啓動應用程序之前,請運行\'bundle install \'。 – jerzy

+0

是的,你需要在構建之前運行'bundle install' – Raphael