13

我有 git-fork 两个 gem(比如foobar),一个取决于另一个:

foo.gemspec

...
s.add_dependency "bar"

我希望我的foo叉子依赖于我的bar叉子,而不是原始的bar gem。

然而这不起作用:

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

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

如果不可能,该怎么办?

4

1 回答 1

14

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

我认为您指的是 Bundler git 功能,因为语法看起来相同。

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

我假设您同时使用了第三个应用程序,您在问题中没有提到。我认为最简单的解决方案是使用 Bundler:path功能直接引用这两个 gem。这在您想要部署它的情况下不起作用,除非您在应用程序中提供 gems。

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

于 2013-10-21T12:46:30.317 回答