2015-02-03 24 views
7

Wir haben ein Projekt, wo wir eine große Anzahl von Scalatramicroservices durch Verpacken sie mit dem sbt-assembly Plugin erstellen, dann erstellen Docker Bilder mit dem Plugin. Der Prozess ist aufgrund der Anzahl der Micro-Services langsam, da das Assembly-Plug-in alle transitiven Abhängigkeiten für jeden Service verarbeiten muss. Ich bemerke jedoch, dass die meisten Mikro-Dienste sehr ähnliche Abhängigkeiten haben. Gibt es eine Möglichkeit, dies zu beschleunigen?Beschleunigen SBT-Montage

Eine Einschränkung ist, dass wir dies auf Jenkins (CI) -Server tun, so dass wir am Anfang sbt clean aufrufen, so dass wir keinen Cachespeicher nutzen können?

+1

Dies könnte helfen http://stackoverflow.com/questions/17190755/why-sbt-runs-dependency-resolution-every-time-after-clean Haben Sie scalatra-sbt's DistPlugin versucht? Es erstellt ein Verzeichnislayout mit den Bibliotheken anstelle eines Fat-Jars. Es kann einen Versuch wert sein, wenn die Ursache nicht der langsame Abhängigkeitsauflösungsprozess von SBT war. –

+0

Oh, es scheint nicht für 0.13.x zu funktionieren ... –

Antwort

1

Sie könnten ein gemeinsames Abhängigkeitsjar erstellen, das alle Abhängigkeiten aufweist, die alle Ihre Microservices benötigen, die Sie nur einmal erstellen müssten. Dann könnten Sie Gläser für jeden der Microservices ohne irgendwelche Abhängigkeiten zusammenstellen.

Siehe "Splitting your project and deps JARs".