Это обычная проблема. Я использую 2 библиотеки A.jar и B.jar, и они зависят от разных версий одной и той же банки.
Скажем, что во время выполнения мне нужно THIS.x.x.x.jar
MY.jar
-> A.jar -> THIS.1.0.0.jar
-> B.jar -> C.jar -> THIS.5.0.0.jar
Я могу скомпилировать конкретную банку (A.jar/B.jar) против ее зависимости, но во время выполнения я должен загрузить только одну версию. Какой?
Загрузка только 1 зависимости (последняя версия) означает, что мой код, вероятно, будет генерировать исключения во время выполнения, если библиотеки не поддерживают обратную совместимость (есть ли там библиотеки Backward Compatible)?
В любом случае я знаю, что что-то вроде OSGi может решить эту проблему.
Мне интересно, какой старый способ решить такие проблемы...
Спасибо большое