gpt4 book ai didi

ruby - 如何在 Bundler 中使用 "gemspec"规则,同时仍然使用 gem 的本地 checkout ?

转载 作者:数据小太阳 更新时间:2023-10-29 06:32:15 25 4
gpt4 key购买 nike

场景:我正在使用 Bundler 开发一个 gem gem-foo。我对 gem-bar 有依赖性,我已经在本地检查了它以进行开发。我可以在 Gemfile 中将此依赖项声明为:

gem "gem-bar", :path => "/path/to/local/gem-bar"

但是,在开发 gem 时,“最佳实践”似乎是通过以下方式在 gem-foo.gemspec 中定义所需的 gem:

s.add_runtime_dependency 'gem-bar'

然后简单地将依赖项包含在 Gemfile 中,使用:

gemspec

我想做的是在 gemspec 中添加对 gem 的运行时依赖性,但对 gem-bar 进行一些本地修改并进行 bundle install使用本地开发结帐。假设我控制两个 gem,并且同时对它们进行黑客攻击,我将同时推送新版本。我可以只是注释掉gemspec 中的s.add_runtime_dependency 并将其添加到Gemfile 中的本地路径,但这感觉...容易出错? gemspec 应该 始终声明这种依赖关系,并且 Gemfile 应该能够覆盖 Bundler 应该用于 gem 的位置。但是,如果您真的这样做,您会收到以下错误:

You cannot specify the same gem twice coming from different sources. You specified that gem-bar (>= 0) should come from an unspecfied source and source at /path/to/local/gem-bar

理想情况下,我只需要某种本地覆盖,因为我从不希望我不小心将 gem 推到特定路径的本地 gem-bar 的要求。那将是愚蠢的。

有人对此用例有好的解决方案吗?

最佳答案

一些人发现了这个问题,Yehuda Katz 表示他很乐意接受补丁:http://groups.google.com/group/ruby-bundler/browse_thread/thread/d4215c4930a63ffc?pli=1

作为最佳解决方法,注释掉 gemfile 中的 gemspec 行并遭受一些重复?

更新:

看来您不必等待 - https://github.com/carlhuda/bundler/commit/03378109d

提交信息:“可以覆盖 Gemfile 中的 .gemspec 依赖源”

万岁!

关于ruby - 如何在 Bundler 中使用 "gemspec"规则,同时仍然使用 gem 的本地 checkout ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4440245/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com