Gemfile中相同gem的不同版本 - 可能吗?

时间:2015-01-09 08:20:45

标签: ruby-on-rails ruby gem

我有2颗宝石:

gem 'A'
gem 'B'
gem 'C'

gem 'X'

gems A,B和C有一个依赖关系,它是gem X. gem X只是发生在Gemfile中,而不是在Gemfile.lock中,因为它本身在整个应用程序中使用。

但是,A和B(以及其他宝石,实际上)需要X的版本1,而C和只有C需要版本2。如何让他们使用不同的版本的X?

3 个答案:

答案 0 :(得分:2)

不,在捆绑商中不允许

答案 1 :(得分:1)

实际上你可以在ruby文件中指定gem 'X', '1'的调用,但是这种方法强烈不推荐,因为引入了如上所述的冲突。

答案 2 :(得分:0)

那可能行不通。无论如何......你怎么期望你的A& B gems使用X gem中的版本1,C版本2?

另一件事是,如果版本1定义了一个类,而版本2定义了同一个类,但是重写了v1方法,那么"最终的类代码"将取决于负载顺序。