Во-первых, вы никогда не сможете полностью блокировать пользователю добавлять зависимость. Пользователь все еще может добавить jar manualy в свой код. Во-вторых, вы также можете разложить модульную банку и поместить ее в свой проект. (фактически такой же, как с муравьиной сборкой)
Это хорошее начало для поддержания центрального места со всей версией ваших зависимостей. В своеобразной «корпоративной родительской помпе».
Если у вашей компании есть связь или искусственный образ, вы можете «закрыть дверь» в этот момент.
Я думаю, что утопично иметь одну и ту же версию ваших зависимостей для всех ваших приложений. Вы всегда хотите использовать последнюю функцию последней версии зависимости.