Скажем, мне нужно (это обязательно) использовать fizz-1.0.jar
и buzz-2.3.2.jar
в моем проекте Java. Теперь fizz-1.0.jar
зависит от foo-0.1.35.jar
, а buzz-2.3.2.jar
зависит от foo-4.2.17.jar
.
foo-0.1.35.jar
содержит класс Widget
следующим образом:
public class Widget {
public int doSomething(int x) {
return x++;
}
}
foo-4.2.17.jar
содержит сильно измененную версию Widget
:
public class Widget {
public Meh makeStuff() {
return new Meh();
}
}
К сожалению, и fizz-1.0.jar
, и buzz-2.3.2.jar
активно используют обе версии Widget
.
Я не могу просто слепо добавить обе версии foo-x.y.z.jar
в путь к классам, потому что какая бы Widget
ни была загружена первой, она будет работать только для fizz-1.0.jar
или buzz-2.3.2.jar
.
Какие у меня есть варианты? Помните, что я должен иметь как fizz-1.0.jar
, так и buzz-2.3.2.jar
, и должен удовлетворять всем их транзитивным зависимостям.