Antworten:
Ich glaube, Sie können dies tun:
gem "foo", path: "/path/to/foo"
spring stopzu prüfen, ob dies tatsächlich das Problem ist.
Zusätzlich zur Angabe des Pfads (wie von Jimmy erwähnt) können Sie Bundler auch zwingen, ein lokales Juwel für Ihre Umgebung zu verwenden, indem Sie nur die folgende Konfigurationsoption verwenden:
$ bundle config local.GEM_NAME /path/to/local/git/repository
Dies ist äußerst hilfreich, wenn Sie zwei Edelsteine oder eine Edelstein- und eine Schienen-App nebeneinander entwickeln.
Beachten Sie jedoch, dass dies nur funktioniert, wenn Sie git bereits für Ihre Abhängigkeit verwenden, zum Beispiel:
# In Gemfile
gem 'rack', :github => 'rack/rack', :branch => 'master'
# In your terminal
$ bundle config local.rack ~/Work/git/rack
Wie in den Dokumenten zu sehen .
BUNDLE_PATH(ein Paket für die Verteilung erstellen) verwende. Wenn Sie das tun, was Sie vorgeschlagen haben, oder Jimmys Antwort, wird nur a ausgeführt usingund nicht tatsächlich in meinem BUNDLE_PATHOrdner installiert . Ich konnte das nicht herausfinden, irgendeine Hilfe?
bundle config --delete local.GEM_NAME
bundle config disable_local_branch_check truemöchten , müssen Sie auch festlegen, oder Bundler beschwert sich über den Zweig. Seien Sie jedoch vorsichtig, da die Überprüfungen verhindern sollen, dass falsche Commits eingehen Gemfile.lock. Docs hier: bundler.io/v1.12/git.html
Sie können auch mit git auf ein lokales Juwel verweisen, wenn Sie gerade daran arbeiten.
gem 'foo',
:git => '/Path/to/local/git/repo',
:branch => 'my-feature-branch'
Wenn es sich dann ändert, renne ich
bundle exec gem uninstall foo
bundle update foo
Ich bin mir jedoch nicht sicher, ob jeder diese beiden Schritte ausführen muss.
bundle uninstall <gem> && bundle install für jede Änderung, die Sie in Ihrer App widerspiegeln möchten
Führen Sie die folgenden Schritte aus, um das lokale Gem-Repository in einem Rails-Projekt zu verwenden:
Überprüfen Sie, ob Ihr Gem-Ordner ein Git-Repository ist (der Befehl wird im Gem-Ordner ausgeführt).
git rev-parse --is-inside-work-treeRepository-Pfad abrufen (der Befehl wird im Gem-Ordner ausgeführt)
git rev-parse --show-toplevelEinrichten einer lokalen Überschreibung für die Schienenanwendung
bundle config local.GEM_NAME /path/to/local/git/repository
Wo GEM_NAMEist der Name Ihres Edelsteins und /path/to/local/git/repositoryist die Ausgabe des Befehls in Punkt2
Fügen Sie in Ihrer Anwendung Gemfiledie folgende Zeile hinzu:
gem 'GEM_NAME', :github => 'GEM_NAME/GEM_NAME', :branch => 'master'Laufen bundle installsollte ungefähr so etwas geben:
Using GEM_NAME (0.0.1) from git://github.com/GEM_NAME/GEM_NAME.git (at /path/to/local/git/repository)
Wo GEM_NAMEist der Name Ihres Edelsteins und /path/to/local/git/repositoryvon Punkt2
Schließlich laufen bundle list, nicht gem listund Sie sollten so etwas sehen:
GEM_NAME (0.0.1 5a68b88)
Wo GEM_NAMEist der Name Ihres Edelsteins?
Einige wichtige Fälle, die ich beobachte, sind:
Rails 4.0.2
ruby 2.0.0p247 (2013-06-27 revision 41674) [x86_64-linux]
Ubuntu 13.10
RubyMine 6.0.3
RubyMinedass lokale Edelsteine nicht als externe Bibliothek angezeigt werden. Weitere Informationen zum Fehler finden Sie hier und hierstop/startden Rails-Server verwenden, um in die Rails-Anwendung geladen zu werdenWenn ich versiondas Juwel stopping/startingändere, gibt mir der Rails-Server einen Fehler. Um das Problem zu beheben, spezifiziere ich die Gem-Version in der Rails-Anwendung Gemfilewie folgt:
gem 'GEM_NAME', '0.0.2', :github => 'GEM_NAME/GEM_NAME', :branch => 'master'Sie können Edelsteine mit source: source: 'https://source.com', git repository (:github => 'git/url')und mit lokalem Pfad referenzieren :path => '.../path/gem_name'. In diesem Artikel
erfahren Sie mehr über Gemfiles und deren Verwendung .