Мы пишем новый набор сервисов и решили сделать так, чтобы они имели общий интерфейс ... называя его BaseService. Идея состоит в том, что всякий раз, когда кто-то хочет разработать новый сервис в нашей организации, он должен просто иметь возможность расширять и использовать этот базовый сервис.
Мы написали несколько других классов, которые также являются частью этого базового jar-кода, он выполняет такие вещи, как обработка транзакций и подключение к базе данных с помощью hibernate и т. Д.
В настоящее время все сервисы, расширяющие BaseService, являются частью одного и того же проекта (Eclipse + Maven), и некоторые сервисы зависят друг от друга, но поскольку они находятся в одном проекте, у нас нет проблема с зависимостями. Однако мы ожидаем, что будет написано 40-50 сервисов, которые расширят базовый сервис и также будут взаимозависимыми.
Я беспокоюсь о том, что размер базового проекта будет огромным, и это только потому, что, когда кто-то должен использовать один сервис, он может зависеть от моего базового фляги, который имеет 50 сервисов.
Есть ли способ, которым мы можем сделать некоторые проекты динамически зависимыми от других?
Допустим, у меня есть служба A, которая зависит от службы B, когда я собираю / компилирую службу A, она должна понимать, что она зависит от службы B, и автоматически использовать jar службы B.
Я слышал об OSGi, он решит мою проблему или есть способ, которым я могу сделать это с Maven, или есть более простое решение?
Извините за длинный пост!
Заранее спасибо за ваши предложения