我有应用程序A取决于应用程序B,A和B都依赖于应用程序C.
要求C的主分支,B要求C的其他分支。
有什么办法可以解决这个问题吗?
答案 0 :(得分:0)
我假设你写了A.如果C应用程序是向后兼容的,那么修改B对C master的依赖。
如果不是......那么......好吧......如果那些版本真的不同,我想到的唯一合理的(不是真正的)解决方案是分叉C中的一个并修改它的名字,通过添加类似" _ver_x_y_z"之类的所有模块名称和出现次数,然后在A或B中修改其出现次数。 如果没有奇怪的运行时解析引用模块名称,它应该工作。您还需要修改ets和mnesia表中的可能名称冲突,已注册的进程和资源文件......以及难以预测的内容。
据我所知,erlang vm中的模块名称只是原子,没有办法加载不同的版本并引用它们(异常是热代码交换)。
我很想阅读更有经验的程序员的答案。也许有一些专门针对这个问题的工具。