【问题标题】:How can I develop two gems together with Bundler?如何与 Bundler 一起开发两个 gem?
【发布时间】:2013-11-04 03:45:23
【问题描述】:

我正在开发两个 gem,我们称它们为 foo 和 bar。 foo 也对 bar 有运行时依赖。我正在使用 bundler 开发这两个 gem。

如何将 bar 指定为 foo 的依赖项并让 bundler 将该依赖项解析为本地路径,而不会污染我的 Gemfile?目前,我能看到的唯一方法是将gem "bar", path: "path/to/bar" 放入 foo 的 Gemfile 中,并在 bar 位于 ruby​​gems 上时将其删除,但此解决方案显然不能令人满意,因为它会在该日期之前在其他任何人的机器上中断。

【问题讨论】:

    标签: ruby rubygems bundler


    【解决方案1】:

    不清楚依赖是runtime还是compile time

    您是否尝试过使用本地.gem 文件安装bar?一旦安装在GEM_HOME 中,您的foo gem 应该会检测到它

    cd /path/to/bar
    rake install
    

    然后

    cd /path/to/foo
    rake build
    

    【讨论】:

    • 我在 bar 上做了rake install,然后在 foo 上做了bundle install,效果很好。不需要rake build
    【解决方案2】:

    您可以将依赖项指定为 git 分支,然后使用此处的说明将其映射到本地路径:http://ryanbigg.com/2013/08/bundler-local-paths/

    【讨论】:

    • 我真的不想用对特定 git 存储库的引用来污染我的 Gemfile。另外,我应该澄清一下,我希望人们能够在不依赖 Bundler 的情况下运行测试。 Eternal-Learner 的方法意味着我可以简单地将我的依赖项放在 gemspec 中。
    • 酷。这是一个很好的解决方案,但我认为它的缺点是,如果您希望 gem foo 看到更改,则每次更改它时都需要重新安装 gem bar。
    猜你喜欢
    • 2011-05-15
    • 1970-01-01
    • 2012-03-25
    • 1970-01-01
    • 1970-01-01
    • 2012-03-17
    • 2014-02-24
    • 2019-03-29
    • 2012-07-01
    相关资源
    最近更新 更多