多应用程序依赖于相同的应用程序,但不同的分支

时间:2014-12-05 02:23:34

标签: erlang rebar

我有应用程序A取决于应用程序B,A和B都依赖于应用程序C.

要求C的主分支,B要求C的其他分支。

有什么办法可以解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

我假设你写了A.如果C应用程序是向后兼容的,那么修改B对C master的依赖。

如果不是......那么......好吧......如果那些版本真的不同,我想到的唯一合理的(不是真正的)解决方案是分叉C中的一个并修改它的名字,通过添加类似" _ver_x_y_z"之类的所有模块名称和出现次数,然后在A或B中修改其出现次数。 如果没有奇怪的运行时解析引用模块名称,它应该工作。您还需要修改ets和mnesia表中的可能名称冲突,已注册的进程和资源文件......以及难以预测的内容。

据我所知,erlang vm中的模块名称只是原子,没有办法加载不同的版本并引用它们(异常是热代码交换)。

我很想阅读更有经验的程序员的答案。也许有一些专门针对这个问题的工具。