2015-02-03 32 views
7

Mamy projekt, w którym budujemy dużą liczbę Scalatramicroservices, pakując je za pomocą wtyczki sbt-assembly, a następnie tworząc obrazy Docker za pomocą wtyczki sbt-docker. Proces jest powolny ze względu na liczbę mikro-usług, ponieważ wtyczka zespołu musi przetwarzać wszystkie przejściowe zależności dla każdej usługi. Zauważam jednak, że większość mikrourządzeń ma bardzo podobne zależności. Czy jest jakiś sposób, aby to przyspieszyć?Przyspieszenie montażu SBT

Jednym z ograniczeń jest to, że robimy to na serwerze Jenkins (CI), więc na początku dzwonimy na sbt clean, więc nie jesteśmy w stanie skorzystać z buforowania?

+1

To może pomóc http://stackoverflow.com/questions/17190755/why-sbt-runs-dependency-resolution-every-time-after-clean Czy wypróbowałeś DistPlugin scalatra-sbt? Tworzy układ katalogu zawierający biblioteki zamiast słoika. Warto spróbować, jeśli przyczyną nie był proces powolnego rozwiązywania zależności SBT. –

+0

Och, wygląda na to, że nie działa dla 0.13.x ... –

Odpowiedz

1

Można utworzyć wspólny pakiet zależności, który ma wszystkie zależności potrzebne wszystkim mikroserwerom, które wystarczy zbudować tylko raz. Następnie możesz zmontować słoiki dla każdej z mikroserwisów bez żadnej zależności.

Zobacz "Splitting your project and deps JARs".