在gemspec add_dependency条目中指定git路径

时间:2013-10-21 12:18:05

标签: gem bundler

我有git-forked两个宝石(比如 foo bar ),一个取决于另一个:

foo.gemspec

...
s.add_dependency "bar"

我希望 foo 的分支依赖于我的 bar 的分支,而不是原来的 bar gem。

然而,这不起作用:

s.add_dependency "bar", git: 'git:github.com/vemv/bar.git' # => ArgumentError!

如何在.gemspec文件中指定依赖项的来源?

如果不可能,该怎么办?

1 个答案:

答案 0 :(得分:10)

不,不可能在.gemspec文件中执行此操作。

我认为你指的是Bundler git功能,因为语法看起来是一样的。

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

我假设您正在使用第3个应用程序,而您在问题中没有提及。我认为最简单的解决方案是使用Bundler :path功能直接引用这两个gems。除非您使用应用程序提供宝石,否则这将无法在您希望部署它的情况下使用。

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