在gempec add_依赖项条目中指定git路径

在gempec add_依赖项条目中指定git路径,gem,bundler,Gem,Bundler,我用git分叉了两个宝石(比如foo和bar),一个取决于另一个: foo.gemspec ... s.add_dependency "bar" 我希望我的foo叉子依赖于我的酒吧叉子,而不是原来的酒吧宝石 但是,这不起作用: s.add_dependency "bar", git: 'git:github.com/vemv/bar.git' # => ArgumentError! 如何在.gemspec文件中指定依赖项的来源? 如果不可能,该怎么办?不,在.gempec文件中不可能这

我用git分叉了两个宝石(比如foo和bar),一个取决于另一个:

foo.gemspec

...
s.add_dependency "bar"
我希望我的foo叉子依赖于我的酒吧叉子,而不是原来的酒吧宝石

但是,这不起作用:

s.add_dependency "bar", git: 'git:github.com/vemv/bar.git' # => ArgumentError!
如何在.gemspec文件中指定依赖项的来源?


如果不可能,该怎么办?不,在.gempec文件中不可能这样做

我认为您指的是Bundler git特性,因为语法看起来是一样的

因此,对于分叉gem的开发,您必须在Gemfile中设置依赖项,并将其从.gempec文件中删除

我假设您使用的是第三个应用程序,您在问题中没有提及。我认为最简单的解决方案是使用Bundler
:path
特性直接引用这两个gem。这在您希望部署它的场景中不起作用,除非您在应用程序中提供gems


总的来说,这是一件棘手的事情。特别是如果您只想修复第三方库中的依赖项或任何其他次要内容。Bundler在这方面不灵活

谢谢你的澄清。现在,在调用
gempec
之前,我尝试在Gemfile上添加git依赖项。但是它不起作用-当我依赖于生成的gem时,我会得到一个
LoadError
。这意味着可以获取git依赖项,但这不是必需的……将它放在Gemfile中的何处并不重要。您必须在库中要求它,或者使用调用
Bundle.setup
从文件中加载依赖项。