Вы не упомянули, в какой среде вы работаете, поэтому я хотел бы поделиться своим решением для Bitbucket Pipelines CI.
Мы строим наши ~ 20 контейнеров в Bitbucket Pipelines CI, и каждый контейнер представляет собой Java-приложение с почти одинаковым набором зависимостей. Bitbucket Pipelines CI использует образы Docker для запуска сборок (да, они используют образы Docker для построения образов Docker ). Существует возможность указать, какой образ Docker использовать для сборок.
Чтобы не загружать все зависимости снова и снова и сократить время сборки, я создал собственный образ Docker, который содержит все внешние зависимости всех наших модулей. Все зависимости были собраны с помощью команды Maven в каждом модуле:
mvn -Dmaven.repo.local=c:/projects/bitbucket-pipelines-baseimage/local-maven-repo clean install
После этого я удалил артефакты проекта из временного репозитория "c: / projects / bitbucket-pipelines-baseimage / local-maven-repo" и создал образ Docker, который включает этот временный репозиторий. Этот образ был развернут в Docker Hub, и теперь все наши сборки в Bitbucket Pipelines используют его. Время сборки значительно сократилось!