Antworten:
Ich glaube, Sie können dies tun:
gem "foo", path: "/path/to/foo"
spring stop
zu 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 using
und nicht tatsächlich in meinem BUNDLE_PATH
Ordner installiert . Ich konnte das nicht herausfinden, irgendeine Hilfe?
bundle config --delete local.GEM_NAME
bundle config disable_local_branch_check true
mö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-tree
Repository-Pfad abrufen (der Befehl wird im Gem-Ordner ausgeführt)
git rev-parse --show-toplevel
Einrichten einer lokalen Überschreibung für die Schienenanwendung
bundle config local.GEM_NAME /path/to/local/git/repository
Wo GEM_NAME
ist der Name Ihres Edelsteins und /path/to/local/git/repository
ist die Ausgabe des Befehls in Punkt2
Fügen Sie in Ihrer Anwendung Gemfile
die folgende Zeile hinzu:
gem 'GEM_NAME', :github => 'GEM_NAME/GEM_NAME', :branch => 'master'
Laufen bundle install
sollte 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_NAME
ist der Name Ihres Edelsteins und /path/to/local/git/repository
von Punkt2
Schließlich laufen bundle list
, nicht gem list
und Sie sollten so etwas sehen:
GEM_NAME (0.0.1 5a68b88)
Wo GEM_NAME
ist 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
RubyMine
dass lokale Edelsteine nicht als externe Bibliothek angezeigt werden. Weitere Informationen zum Fehler finden Sie hier und hierstop/start
den Rails-Server verwenden, um in die Rails-Anwendung geladen zu werdenWenn ich version
das 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 Gemfile
wie 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 .