混合不同版本的Java库

Ama*_*vam 8 java dependencies

我的项目使用具有自己的依赖项的Java库(例如Hadoop,Jetty).我最终得到了相同依赖项的不同版本,比如ant 1.4.5,1.4.6.我的项目可能想使用ant 1.4.7.这是一个小例子,可以通过HTTP Commons等更大的依赖关系变得更复杂.

如何让所有库和依赖项都发挥得更好?有没有办法隔离每个库(Hadoop,Jetty),以便它们只使用它们的依赖项?

Jas*_*oco 1

如果您有源代码,请将所有内容一起编译。如果不这样做,不幸的是,您将不得不将目标选项设置为 javac,以实现最低公分母。仅当运行应用程序时出现实际问题时才需要执行此操作,只要 jvm 是当前版本,就很少会出现这种情况(Java 对于与旧版本的二进制兼容性非常严格)。