Bundler installiert nicht aus dem privaten Stash-Repository, meldet aber, dass dies der Fall ist
-
21-12-2019 - |
Frage
Meine Bundle-Datei scheint einen Edelstein nicht ordnungsgemäß aus einem privaten Repository herunterzuladen.
In meiner Gemfile habe ich:
group :internal do
gem 'private', git: 'ssh://git@internalserver.org:<port>/gems/private.git'
end
Dies wird ausgeführt und die ausführliche Protokollierung erzeugt Folgendes:
Updating ssh://git@internalserver.org:<port>/gems/private.git
Cloning into '/Users/<username>/.rvm/gems/ruby-2.0.0-p247/bundler/gems/private-ddec73caf50f'...
done.
Wenn ich zu navigiere /Users/<username>/.rvm/gems/ruby-2.0.0-p247/bundler/gems/
, sehe ich das richtige Repository richtig geklont, mit einer Gemspec mit dem richtigen Namen.
Wenn der Bundler fertig ist, gem list
zeigt das nicht an private
Juwel.Es erzeugt einen Fehler, wenn ich versuche, es anzufordern.
Ich habe versucht, die Datei Gemfile.lock im Repository zu löschen und erneut auszuführen, aber das hat nicht funktioniert.Alle öffentlichen Gems in der Gemfile werden korrekt installiert.
Relevante Versionsnummern/Software:
- Bundler-Version 1.3.5
- rvm 1.23.14
- Ruby 2.0.0p247
- Atlassan-Versteck
Lösung
Git-Gems sind eine Bundler-spezifische Erweiterung für Rubygems.Der gem
Dem Befehl sind diese nicht bekannt, daher werden sie nicht aufgelistet gem list
.Du kannst rennen bundle show
um die Liste der von Bundler erkannten Gems anzuzeigen, einschließlich Git-Gems.
Um den Edelstein zu benötigen, müssen Sie sicherstellen, dass der Ladepfad von Bundler korrekt eingerichtet ist.Dafür gibt es drei Möglichkeiten:
- Anruf
require 'bundler/setup'
in Ihrer App.Dies ist typisch für Rails-Apps. Mehr dazuBundler.setup
- Anruf
bundle exec <command>
um den Befehl auszuführen.Dies kommt häufiger vor, wenn Befehle von einem Gem ausgeführt werden, z. Brake
oderrspec
. Mehr dazubundle exec
- Erstellen Sie Binstubs für Befehle, die Sie häufig ausführen.
Sehen http://bundler.io/v1.5/git.html Weitere Informationen zu Git Gems.