2015-02-03 24 views
7

Abbiamo un progetto in cui stiamo costruendo un gran numero di Scalatramicroservices confezionandoli utilizzando il plug-in sbt-assembly, quindi creando le immagini Docker utilizzando il plug-in sbt-docker. Il processo è lento a causa del numero di micro-servizi perché il plug-in di assembly deve elaborare tutte le dipendenze transitive per ciascun servizio. Tuttavia noto che la maggior parte dei micro-servizi ha dipendenze molto simili. C'è un modo per accelerare questo?Accelerazione dell'assemblaggio SBT

Una limitazione è che stiamo facendo questo sul server Jenkins (CI), quindi stiamo chiamando sbt clean all'inizio quindi non siamo in grado di sfruttare qualsiasi caching?

+1

Questo potrebbe aiutare http://stackoverflow.com/questions/17190755/why-sbt-runs-dependency-resolution-every-time-after-clean Hai provato il DistPlugin di scalatra-sbt? Crea un layout di directory contenente le librerie invece di un vaso grasso. Potrebbe valere la pena provare se la causa non era il lento processo di risoluzione delle dipendenze di SBT. –

+0

Oh, sembra non funzionare per 0.13.x ... –

risposta

1

È possibile assemblare un contenitore di dipendenze comune con tutte le dipendenze necessarie per tutti i servizi di microservizio, che sarà necessario creare solo una volta. Quindi è possibile assemblare giare per ciascuno dei microservizi senza alcuna dipendenza.

Vedere "Splitting your project and deps JARs".