我可以在 gemfile 中强制执行 gem 的依赖项吗?
如果有两个宝石,A
和 B
。 A1.0.0
取决于 B1.0.0
。
在我的 Gemfile 中:
gem 'A', '~> 1.0.0'
然后运行 bundle
。它将生成一个 Gemfile.lock,如下所示:
A (1.0.0)
B (1.0.0)
但如果我想强制 A
使用 B1.0.1
,最佳实践是什么?此外,如果B1.0.1
不是release而是github标签?
If there are two gems, A
and B
. A1.0.0
depends on B1.0.0
.
In my Gemfile:
gem 'A', '~> 1.0.0'
Then run bundle
. It will generate a Gemfile.lock like:
A (1.0.0)
B (1.0.0)
But if I want to force A
to use B1.0.1
, what's the best practice? Moreover, if the B1.0.1
is not release but a github tag?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您需要在 Gemfile 中显式指定 B gem 才能使用 git 存储库或其他版本。只要 A 1.0.0 与 B 1.0.1 兼容就可以了。如果它仅与 B 1.0.0 兼容,那么您必须创建自己的 A gem 分支并升级 gemspec 以与 B 1.0.1 兼容,然后使用该存储库作为 A 的 gem,而不是 rubygems版本。
这是一个 Gemfile 示例,只要 A 1.0.0 与 B 1.0.1 兼容,它应该可以满足您的需求。
You'll need to explicitly specify the B gem in your Gemfile to use a git repository or another version. As long as A 1.0.0 is compatible with B 1.0.1 you'll be fine. If it is only compatible with B 1.0.0 then you'll have to create your own fork of the A gem and upgrade the gemspec to be compatible with B 1.0.1 and then use that repository as your gem for A instead of the rubygems version.
Here is a sample Gemfile that should give you what you want, provided A 1.0.0 is compatible with B 1.0.1.