В моем проекте Java я использую две разные структуры (например, A.jar и B.jar), и для обоих из них требуется одна общая структура (скажем, Log4j.jar), но в двух разных версиях. Как это обрабатывается Java, если для инфраструктуры A требуется Log4J v1.1, а B - Log4j v1.2? Будет ли это причиной какого-либо конфликта/ошибки или будет каким-то образом (как?) Разрешено?
Если это не вызовет конфликт/ошибку (мой проект может быть скомпилирован и запущен) - могу ли я использовать любую версию Log4j самостоятельно в этом проекте? Или я вынужден выбрать более низкий/более высокий номер версии Log4j?
Обновление:, чтобы быть более конкретным... Что делать, если какая-то часть API-интерфейса Log4j изменилась в версии 1.2 (скажем, изменилась одна сигнатура doIt() одного метода), и оба A и B вызывают doIt. Что будет? Будет ли мой проект работать? Повредет ли он при первом использовании doIt? Какую версию Log4j я должен поставить в classpath - v1.2 или оба?