agn*_*ter 19 ruby gem rubygems bundler
场景:我正在gem-foo使用Bundler 开发一个gem .我有一个依赖gem-bar,我已经在本地检查开发.我可以在Gemfileas中声明这个依赖:
gem "gem-bar", :path => "/path/to/local/gem-bar"
Run Code Online (Sandbox Code Playgroud)
然而,在开发宝石时,"最佳实践"似乎是在gem-foo.gemspec通道中定义所需的宝石:
s.add_runtime_dependency 'gem-bar'
Run Code Online (Sandbox Code Playgroud)
然后简单地在Gemfile使用中包含依赖项:
gemspec
Run Code Online (Sandbox Code Playgroud)
我想要做的是在gemspec中添加对gem的运行时依赖性,但是对其进行一些本地修改gem-bar并bundle install使用本地开发结帐.假设我控制两个宝石的情况,并且我在某种程度上同时攻击它们,我将同时推动新版本.我可能只是注释掉s.add_runtime_dependency在gemspec并与在Gemfile中的本地路径添加它,但那种感觉......容易出错?gemspec 应该总是声明这个依赖项,并且Gemfile应该能够覆盖Bundler应该用于gem的位置.但是,如果您实际执行此操作,则会收到以下错误:
您不能指定来自不同来源的相同gem两次.您指定gem-bar(> = 0)应来自未指定的源和/ path/to/local/gem-bar的源
理想情况下,我只是有一些本地覆盖,因为我从来不想要我不小心推动宝石需要gem-bar在特定路径上的本地.那会很愚蠢.
有没有人对这个用例有一个很好的解决方案?
gun*_*unn 15
有几个人发现了这个问题,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依赖项的源"
万岁!
| 归档时间: |
|
| 查看次数: |
4487 次 |
| 最近记录: |