13

2 つの gem (たとえばfoobar )を git-forkしました。一方は他方に依存しています。

foo.gemspec

...
s.add_dependency "bar"

fooのフォークが、元のbar gemではなく、 barのフォークに依存するようにします。

ただし、これは機能しません。

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

.gemspec ファイルで依存関係のソースを指定する方法は?

不可能な場合、代わりに何をすべきか?

4

1 に答える 1

14

いいえ、.gemspec ファイルでこれを行うことはできません。

構文が同じに見えるので、Bundler git 機能について言及していると思います。

そのため、フォークされた gem を開発するには、Gemfile で依存関係を設定し、.gemspec ファイルから削除する必要があります。

質問で言及していない3番目のアプリケーションの両方を使用していると思います。最も簡単な解決策は、Bundler:path機能を使用して両方の gem を直接参照することだと思います。これは、アプリで宝石を販売しない限り、展開したいシナリオでは機能しません。

全体として、これはトリッキーなことです。特に、依存関係やサードパーティのライブラリのその他のマイナーなものを修正したいだけの場合。この点に関して、Bundler は柔軟ではありません。

于 2013-10-21T12:46:30.317 に答える