簡體   English   中英

如何在Gemfile中指定位於Git存儲庫子目錄中的.gemspec

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM