Ускорение сборки SBT

У нас есть проект, в котором мы создаем большое количество Scalatra микросервисы, упаковав их с помощью sbt -assembly, а затем создавать образы Docker с помощью подключаемого модуля sbt-docker. Процесс медленный из-за количества микросервисов, поскольку подключаемый модуль сборки должен обрабатывать все транзитивные зависимости для каждого сервиса. Однако я заметил, что большинство микросервисов имеют очень похожие зависимости. Есть ли способ ускорить это?

Одно ограничение заключается в том, что мы делаем это на сервере Jenkins (CI), поэтому мы вызываем sbt clean в начале, чтобы мы не могли воспользоваться каким-либо кэшированием?


person Mark Butler    schedule 03.02.2015    source источник
comment
Это может помочь stackoverflow.com/questions/17190755/ Вы пробовали DistPlugin scalatra-sbt? Он создает макет каталога, содержащий библиотеки, а не толстую банку. Возможно, стоит попробовать, если причина не в медленном процессе разрешения зависимостей SBT.   -  person Stefan Ollinger    schedule 05.02.2015
comment
О, кажется, это не работает для 0.13.x...   -  person Stefan Ollinger    schedule 05.02.2015


Ответы (1)


Вы можете собрать общую банку зависимостей, в которой есть все зависимости, необходимые всем вашим микросервисам, которые вам нужно будет создать только один раз. Затем вы можете собрать jar-файлы для каждого из микросервисов без каких-либо зависимостей.

См. "Разделение JAR-файлов проекта и deps" .

person Daniel McDonald    schedule 24.02.2015