Я не рекомендую такой гибрид, даже если вам удастся каким-то образом заставить его работать правильно.
Я бы проанализировал приложение, чтобы выяснить, для каких частей нужна более старая версия,и какие части нуждаются в более новой версии.Затем я бы разделил приложение на два разных подмодуля, развернув их отдельно.Это довольно дешево, если вы используете контейнеризацию (например, Docker).
Модули могут и должны иметь возможность обмениваться сообщениями через REST, Soap, gRPC или через брокера (такого как ActiveMQ) для обмена сообщениями.
Лучший путь - это всегда придерживаться более новой версии, если возможно, обновляя несовместимые компоненты.
Вы также можете зарегистрировать адаптеров компонентов, которые делегируют более старые / подлежащие обновлению компоненты.Это позволит вам выполнить рефакторинг старого кода при сохранении стандартизированного интерфейса.