2017-02-09 2 views
0

Ich habe ein privates Juwel, genannt X, dessen Quellcode auf Github gehostet wird. Wenn ich X in einem Projekt verwenden möchte, füge ich gem 'X', :git => '[email protected]:my-org/x.git' meinem Projekt Gemfile hinzu. Ich kann dann starten irb und geben require 'bundler/setup' und dann require 'x'. Die Funktionalität von X ist verfügbar.Wie benötige ich einen privaten Rubin-Edelstein von einem anderen privaten Rubin-Edelstein?

Jetzt habe ich ein anderes privates Juwel, genannt Y, dessen Quellcode auch auf Github gehostet wird. Ich möchte X innerhalb von Y verwenden.

Wie kann ich das erreichen?

Antwort

-1

Wenn Ihr SSH-Schlüssel auf Github konfiguriert ist, wird diese Arbeit:

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

Sie es, indem Sie testen können ssh -t [email protected]

Weitere Optionen sind Benutzername und Passwort und Grund Auth mit:

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

Oder sicherer mit Umgebungsvariablen, um Ihr Passwort zu schützen:

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

Dieses letzte Beispiel ist auch eine gute Idee, wenn Sie einen CI-Server zum Bereitstellen Ihres Projekts verwenden.

+0

Angenommen, Sie schlagen vor, dass diese Zeilen in die GemFile des Edelsteins gehen, funktioniert das nicht. Wenn Sie 'gem build y.gemspec 'ausführen, erhalten Sie einen Fehler, der besagt:' Die Gitquelle [email protected]: my-org/x.git ist noch nicht ausgecheckt. Bitte führen Sie \ 'bundle install \' aus, bevor Sie versuchen, Ihre Anwendung zu starten. – jerzy

+0

Ja, Sie müssen "bundle install" vor dem Erstellen ausführen – Raphael

Verwandte Themen