[英]How to specify in Gemfile a .gemspec located in a subdirectory of a Git repository
我在github上分享了spree repo,我想在我的rails app的Gemfile中指定一個位於主存儲庫的core
子目錄中的gem。
存儲庫的文件夾結構如下:
|~spree [git root]
| |-spree.gemspec [spree gem located here]
|~core
| |-spree_core.gemspec [spree_core gem located here]
換句話說,我想沿着這些方向做點什么:
gem 'spree-core', :git => 'git://github.com/spree/spree.git'
問題是,當我嘗試bundle install
時,我收到以下錯誤消息:
在git://github.com/spree/spree.git(在master中)找不到gem'spree-core(> = 0)'。 Source不包含任何版本的'spree-core(> = 0)'
你可以做的是創建一個只包含core
子目錄和相關的spree_core.gemspec
文件的spree_core.gemspec
。 這將導致更輕薄的安裝。 您還可以獲取目錄的內容以與您的應用程序捆綁,並將其分發如下:
gem 'spree-core', :path => 'vendor/gems/spree/core'
bundler
從git存儲庫安裝的能力似乎有點受限,根據文檔 ,它期望spree_core/spree_core.gemspec
而不是core/spree_core.gemspec
。
寶石創作者的這種疏忽是常見的,因為大多數人不希望人們安裝除官方發布的寶石之外的任何東西。 至少很好的.gemspec
文件是可用的,因為有些項目甚至沒有讓很多人感到沮喪。
這首先出現在谷歌搜索中,並且給出的答案要么永遠不正確,要么Bundler改變了它的行為。
在OP中有拼寫錯誤,錯誤似乎與原始問題一致。 特別是spree-core
不應該被連字符。
以下應該工作正常:
gem 'spree_core', github: 'spree/spree'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.