我在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)'
答案 0 :(得分:6)
您可以做的是创建一个仅包含core
子目录和关联的spree_core.gemspec
文件的仓库。这将导致更轻薄的安装。您还可以获取目录的内容以与您的应用程序捆绑在一起并按如下方式分发:
gem 'spree-core', :path => 'vendor/gems/spree/core'
bundler
从git存储库安装的功能似乎有点受限the documentation,它期望spree_core/spree_core.gemspec
而不是core/spree_core.gemspec
。
宝石创作者的这种疏忽很常见,因为大多数人不希望人们安装除官方发布的宝石之外的任何东西。至少很高兴.gemspec
文件可用,因为有些项目甚至没有让很多人感到沮丧。
答案 1 :(得分:5)
这首先出现在谷歌搜索中,并且给出的答案要么永远不正确,要么Bundler改变了它的行为。
在OP中存在拼写错误,错误似乎与原始问题一致。具体而言,spree-core
不应该被连字符。
以下应该可以正常工作:
gem 'spree_core', github: 'spree/spree'