假设pom.xml
或build.sbt
中有两个库,分别是A和B。假设它们都依赖于C,但是A依赖于版本1,B依赖于版本2。
我的理解是,如果这些版本不兼容,除了尝试对A或B进行升级/降级以使其依赖于相同的C版本之外,几乎没有其他可以做的事情。
Q1:肯定有人发明了一种编译A&C.1的方法,使A调用C.1,并编译B&C.2,使B调用C.2吗?
Q2:这是固有的困难吗,因为Java是从字节码而不是源代码构建的?问题3:那么这样的工具将具有解析和修改字节码的功能,而不仅仅是Java / Scala代码?
Q4:是否有本机Java方式(而不是使用一些独立的工具)?
Q5:是否有其他语言/编译器没有此问题? (即,使A呼叫C.1和B呼叫C.2的功能是本机的)