2015-04-15 4 views
5

Ich habe ein SBT-Projekt mit ~ 40 Teilprojekten. Es gibt mehrere Plugins, von denen die größten Play und sbt-native-Packager sind. Es gibt keine globalen Plugins.Slow SBT Start mit vielen Projekten

Auf einigen ziemlich bulligen Hardware, Start (nach dem ersten Mal) dauert 20-25 s. Ich weiß, dass es nicht alles wegen JVM Start ist, da ein kleines Projekt (reiner Overhead) in 3-4s beginnt.

Wie kann ich herausfinden, warum sbt mehr Zeit benötigt, um mit dem größeren Projekt zu beginnen?

Ich habe sbt-Dsbt.task.timings = true versucht, aber es enthält nicht, was einen Großteil der Zeit nimmt. Nach dem letzten Zeitpunkt druckt, aber vor

Set aktuelles Projekt zu Beispiel (in Build-Datei:/home/paul/lucid/example /)

gibt es eine 15s Pause.

Wie kann ich herausfinden, was den langsamen Start verursacht?

Antwort

1

Try project/debug.sbt erstellen:

logLevel := Level.Debug 

und sehen, was Sie finden. Oft ist es die Kompilierung der Build-Dateien, wenn Sie project/*.scala haben.

+0

Sind SBT-Dateien schneller oder sind sie im Wesentlichen Scala-Dateien am Ende des Tages? –

+0

Sie werden auch kompiliert werden. Um Zeit zu sparen, sollte man es zu einem veröffentlichten Plugin machen. –

+0

"starten (nach dem ersten Mal)" Damit meine ich, dass alle Projekt/*. Scala-Dateien kompiliert werden. –