- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我在一个小团队中工作,开发了几个 gem 供内部使用。这些 gem 在不同程度上相互依赖,并托管在我的 Github 帐户上。当我声明对这些 gem 的依赖时,我总是在声明 Gemfile
中放入::git => 'url/for/gem/on/github'
。但是我遇到了 Bundler 的一些令人困惑的行为——我认为:
bundle install
时 但是 Bundler 提示它找不到 C。如果我在 A 的 Gemfile
中声明 C 的正确位置,那么它不会提示。我是否正确地推断 Bundler 实际上根本不查看依赖项 Gemfile
,而只是查看它们的 gemspec
?如果是,对于我描述的问题,是否有比直接在 A 的 Gemfile
中将 C 声明为 A 的依赖项更好的解决方案?
更新:看来如果您可以在Gemfile
中声明一个Github 帐户作为gem 源,那么这个问题就可以解决了。这可能吗?
最佳答案
我们最近不得不处理一个非常相似的情况,内部 gem 相互依赖。我们已经使用了内部 git 主机 (GitLab),但遇到了同样的问题,无法在 gemspec 中声明 bundle 样式 git:
和 branch:
属性。
我们的解决方案是同时设置内部 gem 托管。使用 geminabox 可以很容易地启动和运行 gem 主机。真的。运行 gem install geminabox
并为您的网络服务创建一个文件夹(我们使用 passenger,ymmw):
gems/
public/
tmp/
restart.txt
gems/
config.ru
编辑 config.ru
这样的东西:
require "rubygems"
require "geminabox"
Geminabox.data = "gems"
run Geminabox
然后将 passenger 指向 gems/public 文件夹,它将作为一个普通的机架应用程序启动,供您使用。只需将 url 添加到 gemfiles 中的服务并跳过内部 gems 的整个 git 问题,这是我的建议 :)
有关 geminabox 的更多信息可以在他们的 github 页面上找到:https://github.com/geminabox/geminabox
关于ruby - 如何让 Bundler 识别间接依赖的位置声明?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17017057/
我是一名优秀的程序员,十分优秀!