Я не уверен, полностью ли я понимаю, о чем вы спрашиваете, я сначала подумал, что вы не знаете, как управлять зависимостями, которые недоступны версионным способом, если это так:
Вы уже упомянули OSGi, возможно, вы захотите запустить свой собственный репозиторий maven, используя Nexus , который позволит вам самостоятельно создавать версии неверсионных jar-файлов.
Не желая констатировать очевидное, вы не можете использовать конкретную версию чего-то, что не имеет версий ...
Но при повторном чтении вашего вопроса может показаться, что вы спрашиваете, лучше ли иметь явные зависимости для каждого из ваших приложений или какой-то общий набор зависимостей, которые обновляются на лету, что приводит к изменениям во всех ваших приложениях. Я бы сказал следующее:
- Вам нужны повторяемые сборки, что означает, что вам нужно знать, когда вы создаете приложение, какую версию зависимых библиотек оно использовало
- Вы хотите, чтобы при следующем построении все проекты выбирали последнюю версию зависимостей
Вы можете использовать плагин Maven версии для управления такого рода вещами, у нас есть родительский pom, определяющий версии всех библиотек в разделе dependencyManagement
, и каждые 5 минут запускаем скрипт для этого, чтобы посмотреть для обновленных зависимостей. Всякий раз, когда изменяется родительский pom, все дочерние pom обновляются и включаются в систему контроля версий, что означает, что как только будет выпущена новая общая библиотека, мы попытаемся собрать, а затем выполнить модульное тестирование всех наших приложений.